/*******************************************************************************
* Copyright (c) 2006, 2015 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
*     IBM Corporation - initial API and implementation
*********************************************************************************/

// This file was generated by LPG

package org.eclipse.cdt.internal.core.dom.lrparser.cpp;

public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CPPExpressionParsersym {

    public interface IsKeyword {
        public final static byte isKeyword[] = {0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0
        };
    };
    public final static byte isKeyword[] = IsKeyword.isKeyword;
    public final boolean isKeyword(int index) { return isKeyword[index] != 0; }

    public interface BaseCheck {
        public final static short baseCheck[] = {0,
            0,0,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,3,1,1,1,1,1,1,
            1,1,2,2,1,1,0,1,0,4,
            2,3,2,3,2,2,1,0,1,1,
            4,4,4,8,8,3,3,4,4,3,
            3,2,2,7,7,7,7,4,4,5,
            6,3,2,2,1,1,1,2,2,2,
            2,2,2,2,2,2,4,7,9,3,
            0,1,2,2,1,2,3,4,1,0,
            3,1,0,3,5,1,4,1,3,3,
            1,3,3,3,1,3,3,1,3,3,
            1,3,3,3,3,1,3,3,1,3,
            1,3,1,3,1,3,1,3,1,5,
            1,3,5,3,3,1,3,3,1,3,
            1,3,1,3,1,3,1,3,1,5,
            1,1,3,3,3,3,3,3,3,3,
            3,3,3,1,2,1,1,3,3,3,
            3,3,3,3,3,3,3,3,1,2,
            1,3,1,0,1,0,1,1,0,1,
            1,1,1,1,1,1,1,1,3,4,
            3,2,1,4,2,1,2,5,7,5,
            1,4,1,0,5,7,2,8,1,1,
            2,2,3,2,3,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,2,1,0,4,4,2,2,2,2,
            2,1,0,1,1,1,1,1,1,2,
            1,2,2,2,1,1,2,2,1,2,
            2,1,2,2,1,2,2,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,3,
            4,4,5,2,5,6,5,0,1,0,
            7,8,0,1,3,1,0,1,3,1,
            7,6,0,7,6,1,0,6,5,6,
            4,1,3,1,0,1,1,2,1,1,
            3,1,3,1,1,1,1,3,9,2,
            2,3,2,5,3,7,0,1,2,2,
            1,0,1,1,1,3,1,2,1,1,
            2,3,1,1,1,3,2,1,2,2,
            9,8,2,1,3,1,3,1,0,1,
            0,2,1,1,3,1,3,2,1,5,
            8,1,2,3,1,1,7,6,3,0,
            0,1,3,1,1,5,6,6,7,7,
            0,0,1,0,1,1,1,2,4,2,
            2,1,5,1,1,1,1,1,1,1,
            2,1,0,1,3,1,1,2,3,2,
            1,2,2,1,0,1,3,3,5,5,
            4,1,1,1,1,0,1,5,2,2,
            1,2,2,1,0,1,3,4,3,1,
            1,5,2,1,1,3,3,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,2,2,7,1,0,1,3,
            1,1,2,4,2,4,7,9,5,1,
            3,1,0,1,1,3,2,3,2,2,
            1,0,1,1,4,5,2,1,2,2,
            2,2,2,2,2,1,1,2,1,1,
            2,4,4,2,1,2,5,5,3,3,
            1,4,3,1,0,1,3,1,1,-62,
            0,0,0,0,-2,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,-122,-65,0,-4,
            0,0,0,0,0,-54,0,0,-48,0,
            0,-5,-10,0,-6,0,0,-117,-137,-119,
            0,0,-365,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,-313,0,0,
            0,-183,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,-73,-120,0,0,0,0,0,
            0,0,0,0,-59,0,0,-470,0,0,
            0,0,-217,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,-438,0,
            0,0,0,0,0,0,0,0,-267,-430,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,-262,0,-115,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,-53,0,-439,0,0,0,0,
            0,0,0,0,0,0,0,0,0,-285,
            0,-129,0,0,-281,0,0,0,0,-455,
            0,0,0,0,0,-373,0,0,0,0,
            0,0,0,-116,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            -369,0,0,0,-508,0,0,0,0,0,
            0,-311,0,0,-539,0,0,0,0,-130,
            0,-127,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            -598,0,0,0,0,0,0,0,0,0,
            0,0,0,-343,0,0,0,0,-462,0,
            0,0,0,0,0,-131,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,-213,0,-463,0,0,0,0,
            0,0,-58,0,0,0,-417,0,0,0,
            0,-7,0,0,0,0,0,-8,0,-529,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,-261,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            -144,0,0,-150,0,0,0,0,0,0,
            0,0,0,0,0,0,-9,-421,0,0,
            0,-474,0,0,0,0,0,-138,0,-407,
            0,0,0,0,0,0,0,0,0,-71,
            0,0,0,0,-154,0,0,0,0,0,
            0,0,0,0,0,0,0,0,-106,0,
            0,0,0,-268,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,-315,0,0,0,
            -64,0,0,0,0,0,0,-347,0,0,
            0,0,-573,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,-49,
            -11,0,-12,0,0,0,0,0,0,0,
            0,-13,0,0,0,-179,0,0,0,-597,
            0,0,0,0,-334,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,-124,0,0,
            0,-284,0,0,0,0,0,0,-51,0,
            0,0,-50,0,-15,0,0,0,-504,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,-28,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,-142,0,0,0,0,-200,0,0,0,
            0,-29,-3,0,0,0,0,-321,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,-57,
            -30,0,0,0,0,0,0,0,0,0,
            0,-387,0,0,-271,0,0,0,0,-148,
            -135,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,-178,0,0,
            0,0,-121,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,-331,0,0,
            0,0,-207,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,-60,0,0,0,0,
            0,0,0,0,0,0,-263,0,0,-16,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,-222,0,0,0,
            -377,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,-146,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,-31,0,0,0,-328,0,0,
            -378,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,-524,0,0,
            -390,0,0,0,0,0,-359,0,0,-32,
            0,0,-266,0,0,0,0,-39,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,-145,-318,0,0,0,0,
            0,0,0,-33,0,0,-34,0,0,-264,
            -237,0,0,0,0,0,-41,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,-503,0,0,0,0,0,0,
            0,0,-588,0,0,-423,0,0,-275,0,
            0,0,0,0,-35,0,-94,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,-449,0,0,0,0,-199,0,
            0,0,0,0,0,-36,0,0,-495,0,
            0,0,0,-95,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,-201,0,-37,0,0,0,0,0,0,
            0,0,-38,0,0,-282,0,0,0,0,
            -96,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,-362,0,
            -40,0,0,0,0,0,-404,0,0,-55,
            0,0,-497,0,0,0,0,-97,0,0,
            0,0,-56,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,-355,
            0,0,0,-425,0,0,0,0,0,-531,
            0,0,0,0,-98,0,0,0,0,-415,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,-66,0,-445,0,0,0,
            0,0,0,0,0,0,-532,0,0,0,
            0,-99,0,0,0,0,-448,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,-459,
            0,-67,0,0,0,0,0,-464,0,0,
            0,0,0,-288,0,0,0,0,-100,0,
            0,0,0,-452,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,-477,0,0,-69,0,
            -472,0,0,0,0,0,0,0,0,0,
            -289,0,0,0,0,-101,0,0,0,0,
            -478,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,-558,-473,0,-70,0,0,0,0,
            0,-481,0,0,0,0,0,-329,0,0,
            0,0,-102,0,0,0,0,-109,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,-197,
            0,0,-110,0,0,0,0,0,-506,0,
            0,0,0,0,-341,0,0,0,0,-103,
            0,0,0,0,-111,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,-211,0,0,0,
            0,0,0,0,0,-112,0,0,0,0,
            0,-371,0,0,0,0,-104,0,0,0,
            0,-132,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,-370,-485,0,0,0,0,0,
            0,0,-517,0,0,0,0,0,-203,0,
            0,0,0,-224,0,0,0,0,-139,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,-113,0,-322,0,0,0,-526,
            0,0,-402,0,0,-380,0,0,0,0,
            -248,0,0,0,0,-140,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            -141,-505,0,0,0,0,0,0,0,0,
            0,0,0,0,-14,0,-118,0,-155,0,
            -432,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,-249,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,-286,-107,0,0,0,-156,-433,
            -335,0,-411,0,0,0,-157,0,0,0,
            -194,0,-231,0,0,0,0,0,-437,0,
            0,0,-482,-412,0,0,0,0,0,0,
            0,0,-250,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,-108,
            0,0,-114,0,0,0,-158,0,0,-274,
            0,0,0,0,0,0,-159,0,0,0,
            0,0,0,0,0,0,-589,0,-160,0,
            0,-356,0,0,0,0,0,0,-251,0,
            0,0,0,-436,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,-566,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            -161,0,0,0,-162,0,-163,0,-164,0,
            0,0,0,0,-252,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,-165,0,0,-392,0,0,0,0,0,
            -216,0,0,0,-166,0,0,0,-43,0,
            -167,0,-442,0,-325,0,0,0,0,0,
            -494,0,0,0,0,0,0,0,0,0,
            -253,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,-168,-149,0,
            0,-72,0,0,0,0,0,0,0,0,
            0,0,0,0,-446,0,0,0,-352,0,
            0,-465,-169,0,0,0,0,0,0,0,
            -170,0,0,0,0,0,-254,0,0,0,
            0,-153,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,-209,0,-152,0,0,0,
            0,0,0,0,0,0,0,0,0,-466,
            -272,0,-171,0,0,0,-596,0,-358,0,
            -310,0,-172,0,0,0,-173,0,0,0,
            0,0,-255,0,0,0,0,-218,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,-147,0,0,0,-223,0,0,0,
            0,0,0,-276,0,0,0,0,-174,0,
            -357,-323,-175,-512,-324,0,0,0,0,0,
            0,-376,-391,0,0,0,0,0,-256,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,-176,0,-395,0,
            0,0,-528,0,0,0,0,0,0,-283,
            -177,0,0,0,-180,0,-413,-574,0,0,
            0,0,-184,0,0,0,-394,-572,-185,0,
            0,0,0,0,-257,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,-290,0,0,-435,0,0,0,0,0,
            0,0,0,0,0,-326,-381,0,-44,0,
            0,0,0,0,-186,-330,-187,0,-123,0,
            0,0,-420,0,-188,0,0,0,0,0,
            -258,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,-189,0,0,
            0,0,-294,0,0,-342,-363,0,0,0,
            0,0,-414,0,-45,0,-125,0,-190,0,
            -191,0,-192,0,0,0,0,0,0,0,
            0,0,0,0,0,0,-354,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,-291,-292,0,0,0,0,0,
            0,-193,0,-535,-367,-196,-346,-204,-134,0,
            0,0,0,0,-205,0,0,0,-208,0,
            0,0,-542,0,0,0,-397,0,0,0,
            0,0,-591,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,-368,
            0,0,0,0,0,0,0,0,0,0,
            0,-219,0,0,0,-229,0,-293,0,-389,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,-230,0,
            0,-527,0,0,0,-238,0,0,-340,0,
            0,-405,0,0,0,0,-559,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,-269,
            0,0,0,-277,0,0,0,-424,0,0,
            -379,0,0,-501,-385,0,0,-61,-393,0,
            -279,-586,0,0,-220,0,0,0,-416,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,-396,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            -440,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,-327,0,
            -602,0,0,0,0,0,-287,0,0,-298,
            0,0,-299,-300,0,0,0,0,0,0,
            0,0,-301,-302,-540,-350,0,-441,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,-232,0,-538,-303,0,-585,
            0,0,0,0,0,0,-351,0,0,-515,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,-304,0,-305,
            0,-306,0,0,0,0,0,0,-399,0,
            0,-233,-401,0,-418,-427,-451,0,-307,0,
            0,0,-308,0,0,0,-309,-18,0,0,
            0,0,-260,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            -476,-353,0,-280,-1,0,0,0,0,0,
            0,0,-314,0,-316,-317,0,0,-480,0,
            0,0,0,0,-489,0,-553,0,0,0,
            0,0,0,0,0,-93,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,-492,-332,-554,0,0,0,0,0,
            0,-382,0,-247,0,0,0,0,-422,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            -434,0,-534,0,-537,0,0,0,0,0,
            -556,-560,-333,-344,-569,0,0,-561,0,0,
            0,0,0,0,-348,-349,0,0,0,-91,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,-360,-361,-366,
            0,-374,0,0,0,-245,0,0,0,0,
            -450,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,-375,-386,-406,0,-577,-372,0,-339,
            0,0,-408,0,0,-428,-431,-444,-457,-581,
            0,-458,0,-460,-461,-467,-469,-475,0,-484,
            0,-92,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,-530,0,0,-246,0,0,0,
            0,-533,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,-483,-490,-491,0,-514,-516,
            -518,0,-594,-601,-519,-520,-521,-523,-541,-543,
            -544,0,0,0,-88,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,-546,-551,0,0,0,-242,0,
            0,0,0,-536,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,-555,-562,-570,
            -579,-587,-592,0,-603,0,0,0,0,0,
            0,0,0,0,-565,0,-89,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,-567,-571,0,-90,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            -243,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,-456,0,0,
            0,0,0,0,0,0,0,0,0,0,
            -244,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,-575,0,0,
            0,0,-136,0,0,-525,-576,0,-182,-74,
            0,0,-105,0,0,0,0,0,0,-595,
            0,0,0,0,-338,0,-234,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,-235,0,0,0,0,0,0,
            -82,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,-600,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,-83,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            -84,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,-85,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,-239,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,-240,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,-241,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,-278,0,0,0,0,
            0,0,0,0,0,0,0,0,-297,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,-337,0,0,0,0,
            0,0,0,0,0,0,0,0,0,-364,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,-52,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,-198,
            0,0,0,0,0,-295,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,-206,0,0,0,0,0,0,0,0,
            0,-86,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,-388,-47,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,-593,0,-265,-225,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            -87,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,-493,-128,0,0,
            0,0,0,0,-143,0,0,0,0,0,
            0,0,0,0,0,-568,0,0,0,0,
            0,0,0,0,0,-151,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,-513,0,
            -500,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,-226,0,0,0,0,0,-227,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,-590,0,0,
            0,0,0,0,0,0,0,0,0,0,
            -77,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,-78,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,-496,0,0,
            0,0,0,-509,0,0,0,0,0,0,
            0,-384,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,-79,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,-522,
            -270,0,0,0,0,0,-410,0,0,-228,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,-545,0,-550,0,0,0,0,0,-273,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,-547,0,0,0,0,0,0,
            0,-336,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,-400,0,0,0,0,0,0,0,
            0,0,0,0,-259,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,-564,0,0,0,0,
            0,0,0,0,0,0,0,0,0,-487,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,-409,0,0,0,0,0,
            -345,0,0,0,0,0,0,0,0,0,
            0,0,-563,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,-578,0,0,
            0,0,0,0,0,0,0,0,0,0,
            -419,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,-447,0,0,0,
            0,0,0,0,0,0,0,0,-17,0,
            0,0,0,0,-46,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,-580,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,-582,0,
            0,0,0,0,0,0,0,0,0,0,
            0,-80,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,-468,0,0,0,0,
            0,-584,-195,0,0,0,0,0,0,-471,
            0,0,0,0,0,0,0,0,0,0,
            0,-320,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,-599,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,-583,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            -604,0,0,0,0,0,0,0,0,0,
            0,-486,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,-202,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,-181,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,-81,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,-403,0,0,0,0,0,
            0,0,0,0,0,0,0,-498,0,0,
            0,0,0,0,-20,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            -21,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,-22,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,-23,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,-24,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            -25,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,-26,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,-27,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,-63,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,-75,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,-76,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,-133,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,-214,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,-19,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,-426,-499,0,0,
            0,0,0,0,0,0,0,0,-215,-454,
            0,0,0,0,0,0,0,0,-507,0,
            0,0,-502,0,0,0,0,0,0,0,
            0,-212,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,-510,0,0,0,0,0,0,0,0,
            0,-126,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,-42,0,0,
            0,0,0,-68,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,-443,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,-319,0,0,
            0,0,0,0,0,0,0,0,0,0,
            -236,0,0,0,0,0,-398,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            -429,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,-221,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,-453,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,-479,
            0,0,0,0,0,0,0,0,0,-548,
            0,0,0,0,0,0,0,0,0,0,
            -296,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,-210,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            -488,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,-383,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,-549,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,-312,0,0,0,
            0,0,0,-511,0,0,0,0,0,0,
            -557,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,-552,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0
        };
    };
    public final static short baseCheck[] = BaseCheck.baseCheck;
    @Override
    public final int baseCheck(int index) { return baseCheck[index]; }
    public final static short rhs[] = baseCheck;
    @Override
    public final int rhs(int index) { return rhs[index]; };

    public interface BaseAction {
        public final static char baseAction[] = {
            191,5,154,94,94,30,30,81,81,39,
            39,42,42,218,1,1,16,16,16,16,
            16,16,16,17,17,17,15,11,11,6,
            6,6,6,6,6,2,75,75,4,4,
            12,12,44,44,155,155,156,67,67,43,
            18,18,18,18,18,18,18,18,18,18,
            18,18,18,18,18,18,18,18,18,18,
            157,157,157,131,131,19,19,19,19,19,
            19,19,19,19,19,19,19,19,20,20,
            192,192,193,193,194,160,160,161,161,158,
            158,162,159,159,21,21,22,22,23,23,
            23,24,24,24,24,25,25,25,26,26,
            26,31,31,31,31,31,33,33,33,34,
            34,35,35,37,37,38,38,40,40,41,
            41,45,45,45,45,45,47,47,47,53,
            53,55,55,61,61,62,62,63,63,64,
            64,65,65,65,65,65,65,65,65,65,
            65,65,65,65,29,29,46,46,46,46,
            46,46,46,46,46,46,46,46,46,36,
            28,163,163,105,105,195,195,104,219,219,
            82,82,82,82,82,82,82,82,82,83,
            83,83,79,79,66,66,196,196,84,84,
            84,116,116,197,197,85,85,85,85,198,
            198,86,86,86,86,86,87,87,95,95,
            95,95,95,95,95,95,56,56,56,56,
            56,132,132,130,130,57,199,27,27,27,
            27,27,50,50,69,69,69,69,69,137,
            137,133,133,133,133,133,134,134,134,135,
            135,135,136,136,136,165,165,165,70,70,
            70,70,70,71,71,71,13,14,14,14,
            14,14,14,14,14,14,14,14,106,138,
            138,138,138,138,138,111,111,111,166,167,
            167,112,112,200,169,169,168,168,139,139,
            117,92,92,140,59,49,170,170,60,58,
            97,97,171,171,164,164,141,142,142,143,
            89,89,172,172,77,77,77,73,73,72,
            78,78,80,80,68,68,68,54,98,98,
            108,107,107,51,51,74,74,76,76,52,
            109,109,109,99,99,99,100,100,101,101,
            101,102,102,118,118,118,120,120,119,119,
            220,220,103,103,202,202,202,202,202,145,
            48,48,174,201,201,146,146,147,147,147,
            148,176,203,203,32,32,110,114,114,114,
            114,205,122,121,121,113,113,113,177,178,
            178,178,178,178,178,178,178,178,178,178,
            207,207,204,204,206,206,179,180,180,180,
            180,181,208,124,123,123,209,209,182,182,
            182,182,115,115,115,210,210,8,8,9,
            211,211,212,183,173,173,184,184,185,186,
            186,7,7,10,213,213,213,213,213,213,
            213,213,213,213,213,213,213,213,213,213,
            213,213,213,213,213,213,213,213,213,213,
            213,213,213,213,213,213,213,213,213,213,
            213,213,213,213,213,213,90,93,93,187,
            187,150,150,151,151,151,151,151,151,3,
            152,152,149,149,188,221,222,222,223,223,
            224,225,225,189,190,190,190,190,214,214,
            214,126,126,126,126,126,127,128,128,125,
            125,96,91,88,88,175,175,129,129,215,
            215,215,153,153,144,144,216,216,191,191,
            1119,35,2221,2196,4455,1355,27,30,31,1162,
            1215,26,28,2149,296,25,23,50,1246,106,
            76,77,108,1272,1474,1301,1564,1938,1335,177,
            332,1520,308,1625,1567,1704,2277,1666,1713,2276,
            1751,176,413,147,1273,1510,191,4350,1508,1941,
            1350,266,5173,1243,35,1153,32,4862,4737,27,
            30,31,1162,1215,375,28,534,193,1088,269,
            264,265,2905,35,1153,32,3328,600,27,30,
            31,1162,1215,26,28,1151,296,25,23,50,
            1246,106,76,77,108,1272,1474,1301,2779,379,
            189,266,2956,2683,2276,1488,309,441,1396,1273,
            276,279,282,627,705,2277,368,3066,1734,278,
            264,265,5007,1824,3118,355,2291,357,810,389,
            350,1175,193,2237,650,1353,2839,5932,285,1537,
            35,490,3432,5166,2353,5739,2301,2030,715,159,
            1638,35,1153,32,4862,3838,27,30,31,1162,
            1215,375,28,630,69,2897,2360,35,1153,32,
            3328,5363,27,30,31,1162,1215,26,28,1151,
            296,25,23,50,1246,106,76,77,108,1272,
            1474,1301,2779,1659,1818,162,1492,35,3563,32,
            4862,4737,27,30,31,1162,1215,375,28,2592,
            1508,2773,1818,2837,5173,2555,35,312,3327,2835,
            2593,2878,352,3520,357,6140,2929,2845,2899,2901,
            161,579,4270,1847,2360,35,1153,32,3328,5363,
            27,30,31,1162,1215,26,28,1151,296,25,
            23,50,1246,106,76,77,108,1272,1474,1301,
            2779,2634,3379,162,2956,71,35,330,355,2291,
            357,2702,2489,350,1175,71,35,330,2957,2773,
            1818,2837,1537,35,314,1050,5330,2835,535,2878,
            2045,550,576,3889,580,2845,2899,2901,161,579,
            467,1912,35,1153,32,6094,497,27,30,31,
            1162,1215,26,28,2627,2765,548,93,2903,759,
            35,433,2887,483,3576,3577,2360,35,1153,32,
            3328,5363,27,30,31,1162,1215,26,28,1151,
            296,25,23,50,1246,106,76,77,108,1272,
            1474,1301,2779,426,2413,162,759,35,433,550,
            576,3889,580,71,1939,2102,34,71,3522,1166,
            94,2773,2046,2837,496,455,456,3555,2224,2835,
            1488,2878,3225,2952,427,464,2903,2845,2899,2901,
            161,579,3478,1820,2570,35,1153,32,3328,5363,
            27,30,31,1162,1215,26,28,1151,296,25,
            23,50,1246,106,76,77,108,1272,1474,1301,
            2779,1818,2630,162,1729,35,1153,32,6094,2683,
            27,30,31,1162,1215,59,28,2369,2627,2773,
            3646,2837,71,35,1892,425,3471,2835,2532,2878,
            2702,550,576,3889,580,2845,2899,2901,161,579,
            1543,35,1153,32,4476,1818,27,30,31,1162,
            1215,57,28,88,468,2965,102,3647,2903,3327,
            35,1153,32,3328,843,27,30,31,1162,1215,
            26,28,1151,296,25,23,50,1246,106,76,
            77,108,1272,1474,1301,1564,325,1229,35,330,
            1520,1520,1625,1567,1704,5762,1666,2647,1365,551,
            576,3889,580,2708,35,1153,32,3328,390,27,
            30,31,1162,1215,26,28,1151,296,25,23,
            50,1246,106,76,77,108,1272,1474,1301,1564,
            56,1400,177,2736,1520,766,1625,1567,1704,51,
            1666,1713,2738,1751,176,3465,71,35,3059,415,
            2428,35,1153,32,3328,2670,27,30,31,1162,
            1215,26,28,1151,296,25,23,50,1246,106,
            76,77,108,1272,1474,1301,1564,89,1213,177,
            102,1520,2600,1625,1567,1704,2705,1666,1713,1647,
            1751,176,3465,56,648,2765,415,61,834,2638,
            35,1153,32,3328,1517,27,30,31,1162,1215,
            26,28,1151,296,25,23,50,1246,106,76,
            77,108,1272,1474,1301,1564,3735,2639,177,70,
            1520,3201,1625,1567,1704,360,1666,1713,458,1751,
            176,3465,1537,35,314,415,5842,1405,1315,422,
            416,3257,1239,2973,35,1153,32,3328,159,27,
            30,31,1162,1215,26,28,1151,296,25,23,
            50,1246,106,76,77,108,1272,1474,1301,1564,
            56,1449,177,1555,1520,926,1625,1567,1704,2631,
            1666,1713,2600,1751,176,1488,423,416,3257,191,
            1595,2852,35,1153,32,3328,3122,27,30,31,
            1162,1215,26,28,1151,296,25,23,50,1246,
            106,76,77,108,1272,1474,1301,1564,71,35,
            2102,3026,1520,1655,1625,1567,1704,2826,1666,1713,
            914,2969,197,3474,1702,413,416,3257,2973,35,
            1153,32,3328,1818,27,30,31,1162,1215,26,
            28,1151,296,25,23,50,1246,106,76,77,
            108,1272,1474,1301,1564,3125,2277,177,1267,1520,
            2955,1625,1567,1704,266,1666,1713,69,1751,176,
            1559,35,1153,32,409,363,41,30,31,1162,
            1215,480,281,264,265,1373,24,2003,35,1892,
            425,2973,35,1153,32,3328,630,27,30,31,
            1162,1215,26,28,1151,296,25,23,50,1246,
            106,76,77,108,1272,1474,1301,1564,56,308,
            177,365,1520,1273,1625,1567,1704,362,1666,1713,
            1038,1751,176,3474,1233,42,3022,409,71,35,
            317,2973,35,1153,32,3328,2658,27,30,31,
            1162,1215,26,28,1151,296,25,23,50,1246,
            106,76,77,108,1272,1474,1301,1564,71,3387,
            177,1818,1520,408,1625,1567,1704,241,1666,1713,
            1338,1751,176,71,35,2176,1278,409,2502,35,
            1153,32,3328,3207,27,30,31,1162,1215,26,
            28,1151,296,25,23,50,1246,106,76,77,
            108,1272,1474,1301,1564,2095,1501,177,72,1520,
            4250,1625,1567,1704,55,1666,1713,1662,1751,176,
            69,1537,35,567,175,6161,407,2973,35,1153,
            32,3328,379,27,30,31,1162,1215,26,28,
            1151,296,25,23,50,1246,106,76,77,108,
            1272,1474,1301,1564,56,97,177,723,1520,1273,
            1625,1567,1704,1488,1666,1713,1818,1751,176,71,
            35,2102,311,192,2641,65,405,2973,35,1153,
            32,3328,3704,27,30,31,1162,1215,26,28,
            1151,296,25,23,50,1246,106,76,77,108,
            1272,1474,1301,1564,1499,2630,177,2977,1520,147,
            1625,1567,1704,4731,1666,1713,228,1751,176,71,
            35,1892,425,188,2973,35,1153,32,3328,588,
            27,30,31,1162,1215,26,28,1151,296,25,
            23,50,1246,106,76,77,108,1272,1474,1301,
            1564,489,147,177,61,1520,4800,1625,1567,1704,
            98,1666,1713,1007,1751,176,931,35,2102,311,
            187,2973,35,1153,32,3328,1749,27,30,31,
            1162,1215,26,28,1151,296,25,23,50,1246,
            106,76,77,108,1272,1474,1301,1564,2491,147,
            177,1334,1520,4883,1625,1567,1704,2491,1666,1713,
            1348,1751,176,71,35,1892,425,186,2973,35,
            1153,32,3328,1847,27,30,31,1162,1215,26,
            28,1151,296,25,23,50,1246,106,76,77,
            108,1272,1474,1301,1564,471,439,177,392,1520,
            69,1625,1567,1704,2178,1666,1713,594,1751,176,
            71,35,1892,425,185,2973,35,1153,32,3328,
            2489,27,30,31,1162,1215,26,28,1151,296,
            25,23,50,1246,106,76,77,108,1272,1474,
            1301,1564,470,443,177,233,1520,1915,1625,1567,
            1704,5180,1666,1713,3119,1751,176,71,35,1892,
            425,184,2973,35,1153,32,3328,2489,27,30,
            31,1162,1215,26,28,1151,296,25,23,50,
            1246,106,76,77,108,1272,1474,1301,1564,469,
            147,177,2795,1520,5312,1625,1567,1704,2178,1666,
            1713,321,1751,176,71,3485,2102,74,183,2973,
            35,1153,32,3328,2489,27,30,31,1162,1215,
            26,28,1151,296,25,23,50,1246,106,76,
            77,108,1272,1474,1301,1564,1499,335,177,1361,
            1520,147,1625,1567,1704,5428,1666,1713,322,1751,
            176,931,35,2102,3486,182,2973,35,1153,32,
            3328,2489,27,30,31,1162,1215,26,28,1151,
            296,25,23,50,1246,106,76,77,108,1272,
            1474,1301,1564,1499,147,177,1482,1520,5808,1625,
            1567,1704,2178,1666,1713,332,1751,176,71,35,
            2102,313,181,2973,35,1153,32,3328,1413,27,
            30,31,1162,1215,26,28,1151,296,25,23,
            50,1246,106,76,77,108,1272,1474,1301,1564,
            56,255,177,1934,1520,4369,1625,1567,1704,2178,
            1666,1713,331,1751,176,71,35,2102,3554,180,
            2973,35,1153,32,3328,2112,27,30,31,1162,
            1215,26,28,1151,296,25,23,50,1246,106,
            76,77,108,1272,1474,1301,1564,56,339,177,
            391,1520,3364,1625,1567,1704,2132,1666,1713,594,
            1751,176,71,35,2102,316,179,2973,35,1153,
            32,3328,2831,27,30,31,1162,1215,26,28,
            1151,296,25,23,50,1246,106,76,77,108,
            1272,1474,1301,1564,2634,147,177,359,1520,5829,
            1625,1567,1704,2178,1666,1713,594,1751,176,71,
            35,1892,425,178,2973,35,1153,32,3328,1832,
            27,30,31,1162,1215,26,28,1151,296,25,
            23,50,1246,106,76,77,108,1272,1474,1301,
            1564,308,212,177,1104,1520,3002,1625,1567,1704,
            2178,1666,1713,2934,1751,176,71,35,1892,425,
            140,3094,35,1153,32,3328,3785,27,30,31,
            1162,1215,26,28,1151,296,25,23,50,1246,
            106,76,77,108,1272,1474,1301,2779,308,232,
            162,3724,1243,35,1153,32,4862,4737,27,30,
            31,1162,1215,375,28,2734,2773,1257,2837,2008,
            4250,1229,3572,330,2835,310,2878,428,464,1348,
            273,296,2845,2899,2901,161,173,3094,35,1153,
            32,3328,379,27,30,31,1162,1215,26,28,
            1151,296,25,23,50,1246,106,76,77,108,
            1272,1474,1301,2779,2623,2277,162,1209,266,2084,
            2789,2701,376,2634,355,2291,357,1423,3010,350,
            1175,1815,2773,3847,2837,5173,274,264,265,1488,
            2835,349,2878,2322,2634,69,273,296,2845,2899,
            2901,161,172,3094,35,1153,32,3328,1166,27,
            30,31,1162,1215,26,28,1151,296,25,23,
            50,1246,106,76,77,108,1272,1474,1301,2779,
            2277,2630,162,2277,266,2956,2309,1645,1517,3125,
            2456,35,312,343,346,2313,484,1653,2773,369,
            2837,361,274,264,265,412,2835,1488,2878,227,
            68,2639,2007,53,2845,2899,2901,161,171,3094,
            35,1153,32,3328,2934,27,30,31,1162,1215,
            26,28,1151,296,25,23,50,1246,106,76,
            77,108,1272,1474,1301,2779,430,464,162,2630,
            1243,35,1153,32,4862,4737,27,30,31,1162,
            1215,375,28,2777,2773,1998,2837,429,464,44,
            3022,399,2835,587,2878,415,479,417,493,2417,
            2845,2899,2901,161,170,3094,35,1153,32,3328,
            1749,27,30,31,1162,1215,26,28,1151,296,
            25,23,50,1246,106,76,77,108,1272,1474,
            1301,2779,2420,410,162,71,35,2102,566,364,
            371,56,355,2291,357,495,1202,350,1175,56,
            2773,2874,2837,2345,4250,2693,35,315,2835,3731,
            2878,2171,35,490,348,5166,2845,2899,2901,161,
            169,3094,35,1153,32,3328,379,27,30,31,
            1162,1215,26,28,1151,296,25,23,50,1246,
            106,76,77,108,1272,1474,1301,2779,3001,2277,
            162,3118,2215,35,1153,32,4476,3327,27,30,
            31,1162,1215,56,28,1556,2773,2572,2837,2731,
            35,565,1488,405,2835,2008,2878,484,2683,87,
            2092,1917,2845,2899,2901,161,168,3094,35,1153,
            32,3328,2277,27,30,31,1162,1215,26,28,
            1151,296,25,23,50,1246,106,76,77,108,
            1272,1474,1301,2779,2630,2277,162,1729,35,1153,
            32,6094,52,27,30,31,1162,1215,58,28,
            2626,56,2773,572,2837,4447,3199,319,412,1488,
            2835,56,2878,1752,2485,386,2382,1929,2845,2899,
            2901,161,167,3094,35,1153,32,3328,2277,27,
            30,31,1162,1215,26,28,1151,296,25,23,
            50,1246,106,76,77,108,1272,1474,1301,2779,
            475,3156,162,1994,35,1153,32,2524,90,40,
            30,31,1162,1215,2277,487,3576,3577,2773,2185,
            2837,1335,56,2353,1728,56,2835,861,2878,60,
            2124,215,2007,1365,2845,2899,2901,161,166,3094,
            35,1153,32,3328,2836,27,30,31,1162,1215,
            26,28,1151,296,25,23,50,1246,106,76,
            77,108,1272,1474,1301,2779,3423,2418,162,1994,
            35,1153,32,71,3728,1804,30,31,1162,1215,
            2277,2450,2683,2777,2773,2496,2837,1734,759,35,
            433,5007,2835,1867,2878,1984,2749,2007,1728,571,
            2845,2899,2901,161,165,3094,35,1153,32,3328,
            2886,27,30,31,1162,1215,26,28,1151,296,
            25,23,50,1246,106,76,77,108,1272,1474,
            1301,2779,2277,418,162,1994,35,1153,32,3315,
            371,1898,30,31,1162,1215,56,2762,2777,56,
            2773,3558,2837,585,4250,2268,56,581,2835,1833,
            2878,2712,67,2007,71,753,2845,2899,2901,161,
            164,3094,35,1153,32,3328,379,27,30,31,
            1162,1215,26,28,1151,296,25,23,50,1246,
            106,76,77,108,1272,1474,1301,2779,491,2973,
            162,3118,1847,2276,370,371,56,2661,1273,3732,
            266,1312,2183,2929,2777,56,2773,1922,2837,2006,
            4250,1657,2683,1019,2835,2033,2878,585,284,264,
            265,193,2845,2899,2901,161,163,3154,35,1153,
            32,3328,379,27,30,31,1162,1215,26,28,
            1151,296,25,23,50,1246,106,76,77,108,
            1272,1474,1301,2779,2277,2277,162,3118,266,466,
            3317,371,2533,3260,2489,56,1248,1904,2914,1508,
            2293,5173,2773,5173,2837,2534,287,264,265,744,
            2835,2055,2878,2280,66,65,3568,1488,2845,2899,
            2901,161,160,3214,35,1153,32,3328,3226,27,
            30,31,1162,1215,26,28,1151,296,25,23,
            50,1246,106,76,77,108,1272,1474,1301,1564,
            56,2956,177,2956,1520,2314,1625,1567,1704,3316,
            1666,1713,835,1751,176,2957,2492,368,2277,222,
            3327,35,1153,32,3328,340,27,30,31,1162,
            1215,26,28,1151,296,25,23,50,1246,106,
            76,77,108,1272,1474,1301,1564,4312,64,2564,
            1867,1520,2178,1625,1567,1704,3062,1666,1713,2277,
            2969,197,3327,35,1153,32,3328,2489,27,30,
            31,1162,1215,26,28,1151,296,25,23,50,
            1246,106,76,77,108,1272,1474,1301,1564,3115,
            1486,231,586,1520,2290,1625,1567,1704,2007,1666,
            1713,56,2969,197,2007,56,4991,96,3766,56,
            2843,2018,2490,2959,3108,71,35,1892,425,3327,
            35,1153,32,3328,1616,27,30,31,1162,1215,
            26,28,1151,296,25,23,50,1246,106,76,
            77,108,1272,1474,1301,1564,56,49,419,2777,
            1520,5807,1625,1567,1704,2777,1666,1713,46,2969,
            197,3327,35,1153,32,3328,460,27,30,31,
            1162,1215,26,28,1151,296,25,23,50,1246,
            106,76,77,108,1272,1474,1301,1564,388,1851,
            3522,319,1520,2637,1625,1567,1704,1011,1666,1713,
            589,2969,197,743,915,366,371,380,1048,649,
            385,3463,371,925,2045,2178,2277,378,3327,35,
            1153,32,3328,329,27,30,31,1162,1215,26,
            28,1151,296,25,23,50,1246,106,76,77,
            108,1272,1474,1301,1564,2011,55,1488,2542,1520,
            2818,1625,1567,1704,338,1666,1713,2277,2969,197,
            3486,35,1153,32,3328,459,27,30,31,1162,
            1215,26,28,1151,296,25,23,50,1246,106,
            76,77,108,1272,1474,1301,1564,54,577,3472,
            2486,1520,2179,1625,1567,1704,266,1666,1713,56,
            2969,197,2092,56,3461,56,56,56,2394,2494,
            1654,5820,1936,2389,278,264,265,757,1673,35,
            1892,425,462,3433,35,1153,32,3328,324,27,
            30,31,1162,1215,26,28,1151,296,25,23,
            50,1246,106,76,77,108,1272,1474,1301,2779,
            49,56,2010,266,2594,2292,3114,826,3553,4250,
            1273,1845,628,2528,3694,2878,2945,417,2773,56,
            2837,281,264,265,5833,56,2835,2178,2878,586,
            4674,4166,143,189,2845,3323,3327,35,1153,32,
            3328,598,27,30,31,1162,1215,26,28,1151,
            296,25,23,50,1246,106,76,77,108,1272,
            1474,1301,1564,56,2595,2178,235,1520,2704,1625,
            1567,1704,2277,2633,3380,35,1153,32,3328,2277,
            27,30,31,1162,1215,26,28,1151,296,25,
            23,50,1246,106,76,77,108,1272,1474,1301,
            2779,2822,358,56,233,56,4250,396,1983,101,
            3077,2669,56,2601,2706,56,2778,1123,2178,2773,
            5129,2837,3069,3104,3121,3003,1663,2835,4166,2878,
            3327,35,1153,32,3328,3302,27,30,31,1162,
            1215,26,28,1151,296,25,23,50,1246,106,
            76,77,108,1272,1474,1301,1564,334,2628,3004,
            2664,1520,2633,1625,1567,2573,3380,35,1153,32,
            3328,2277,27,30,31,1162,1215,26,28,1151,
            296,25,23,50,1246,106,76,77,108,1272,
            1474,1301,2779,2960,2778,2995,605,2927,1851,3522,
            2566,3361,4598,2959,542,4250,1216,2793,2961,1218,
            2178,2773,3064,2837,1292,3006,3059,2881,2962,2835,
            2277,3298,3327,35,1153,32,3328,4166,27,30,
            31,1162,1215,26,28,1151,296,25,23,50,
            1246,106,76,77,108,1272,1474,1301,1564,4367,
            2039,539,541,1520,2277,1625,2581,3380,35,1153,
            32,3328,2416,27,30,31,1162,1215,26,28,
            1151,296,25,23,50,1246,106,76,77,108,
            1272,1474,1301,2779,488,3117,3124,3176,3574,3092,
            3183,87,592,2178,2178,3086,3118,3119,3120,1362,
            3147,173,2773,397,2837,3327,35,1153,32,3328,
            3300,27,30,31,1162,1215,26,28,1151,296,
            25,23,50,1246,106,76,77,108,1272,1474,
            1301,1564,256,226,3212,2998,1520,324,2495,3380,
            35,1153,32,3328,2277,27,30,31,1162,1215,
            26,28,1151,296,25,23,50,1246,106,76,
            77,108,1272,1474,1301,2779,2893,3553,3177,1637,
            3178,3236,3237,2966,414,2958,6862,6862,6862,6862,
            6862,6862,6862,6862,2773,2277,3223,3327,35,1153,
            32,3328,6862,27,30,31,1162,1215,26,28,
            1151,296,25,23,50,1246,106,76,77,108,
            1272,1474,1301,1564,6862,4978,2277,2277,2501,3327,
            35,1153,32,3328,6862,27,30,31,1162,1215,
            26,28,1151,296,25,23,50,1246,106,76,
            77,108,1272,1474,1301,1564,5040,5172,6862,6862,
            2548,3380,35,1153,32,3328,6862,27,30,31,
            1162,1215,26,28,1151,296,25,23,50,1246,
            106,76,77,108,1272,1474,1301,2779,1258,35,
            1153,32,4945,4737,27,30,31,1162,1215,375,
            28,3380,35,1153,32,3328,3224,27,30,31,
            1162,1215,26,28,1151,296,25,23,50,1246,
            106,76,77,108,1272,1474,1301,2779,2277,6862,
            6862,6862,6862,2776,6862,6862,2180,2277,6187,2023,
            56,1273,2956,56,2959,1273,3258,6862,1273,6862,
            2277,6862,6862,6862,6862,1508,368,2181,1613,5173,
            355,2291,357,387,189,350,1175,2377,189,6862,
            6862,189,3425,6862,2783,234,1065,349,6862,2643,
            3654,3327,35,1153,32,3328,5415,27,30,31,
            1162,1215,26,28,1151,296,25,23,50,1246,
            106,76,77,108,1272,1474,1301,2379,266,2956,
            6862,6862,6862,388,6862,6862,2277,6862,6862,388,
            6862,6862,6862,368,6862,266,284,264,265,342,
            346,2313,380,1048,649,385,6862,6862,380,1048,
            649,385,2615,570,264,265,5301,6862,578,6862,
            6862,6862,1992,4682,3327,35,1153,32,3328,3645,
            27,30,31,1162,1215,26,28,1151,296,25,
            23,50,1246,106,76,77,108,1272,1474,1301,
            2441,3327,35,1153,32,3328,6862,27,30,31,
            1162,1215,26,28,1151,296,25,23,50,1246,
            106,76,77,108,1272,1474,1301,2445,3327,35,
            1153,32,3328,6862,27,30,31,1162,1215,26,
            28,1151,296,25,23,50,1246,106,76,77,
            108,1272,1474,1301,2447,3327,35,1153,32,3328,
            6862,27,30,31,1162,1215,26,28,1151,296,
            25,23,50,1246,106,76,77,108,1272,1474,
            1301,3210,3327,35,1153,32,3328,6862,27,30,
            31,1162,1215,26,28,1151,296,25,23,50,
            1246,106,76,77,108,1272,1474,1301,3213,3327,
            35,1153,32,3328,6862,27,30,31,1162,1215,
            26,28,1151,296,25,23,50,1246,106,76,
            77,108,1272,1474,1301,3214,1339,35,1153,32,
            4862,3905,27,30,31,1162,1215,375,28,3327,
            35,1153,32,3328,6862,27,30,31,1162,1215,
            26,28,1151,296,25,23,50,1246,106,76,
            77,108,1272,1474,1301,3362,3759,35,1153,32,
            4862,6219,27,30,31,1162,1215,375,28,6862,
            1220,35,3563,32,4945,4737,27,30,31,1162,
            1215,375,28,6862,6862,6862,387,6862,355,2291,
            357,6862,6862,350,1175,6862,388,6862,6862,6862,
            3539,35,1892,425,4448,3473,6862,6862,6862,6862,
            6862,6862,6862,271,296,380,1048,649,385,6862,
            759,35,3100,1084,2956,3424,2276,6862,355,2291,
            357,1273,308,350,1175,6862,388,6862,368,6862,
            6862,6862,355,2291,357,3432,6862,350,1175,6862,
            6862,266,49,6862,193,380,1048,649,385,1050,
            6862,6862,2126,1845,1523,2615,5173,6862,5415,269,
            264,265,3327,35,1153,32,3328,6862,27,30,
            31,1162,1215,26,28,1151,296,25,23,50,
            1246,106,76,77,108,1272,1474,2449,6862,2276,
            71,35,1892,425,1273,6862,309,6862,6862,6862,
            276,279,282,627,705,6862,2956,3508,402,1179,
            56,6862,1273,6267,4250,1273,6862,193,6862,6862,
            369,3267,49,2237,650,1353,2839,5932,285,6862,
            6862,749,388,1845,2174,189,262,6862,189,454,
            456,3555,6862,195,6862,6862,2812,6862,6862,6862,
            6862,382,1048,649,385,2897,6862,668,444,6008,
            6862,3327,35,1153,32,3328,1757,27,30,31,
            1162,1215,26,28,1151,296,25,23,50,1246,
            106,76,77,108,1272,1474,2482,259,243,35,
            1892,425,600,6862,3439,2027,35,1892,425,445,
            446,447,3376,6862,6862,6862,2182,6862,6862,6862,
            6862,600,6862,6862,262,189,329,35,1892,425,
            49,6862,6862,2133,3373,6862,213,49,6862,2630,
            6862,1845,2958,379,189,237,249,750,1845,954,
            6862,6862,221,236,246,247,248,250,49,1,
            6862,2775,6862,202,600,2139,4250,6862,2420,1845,
            2687,6862,2139,6862,6862,6862,201,6862,6862,216,
            200,203,204,205,206,207,262,189,379,6862,
            6862,593,6862,1427,56,2133,448,450,213,1273,
            56,2630,6862,6862,6862,1273,6862,237,249,750,
            6862,6862,3966,3118,6862,236,246,247,248,250,
            6862,6862,189,872,6862,202,5192,6862,189,6862,
            2944,6862,223,6862,6862,6862,2945,596,201,6862,
            214,217,200,203,204,205,206,207,1416,35,
            1153,32,4862,3905,27,30,31,1162,1215,375,
            28,3327,35,1153,32,3328,6862,27,30,31,
            1162,1215,26,28,1151,296,25,23,50,1246,
            106,76,77,108,1272,2239,6862,6862,3327,35,
            1153,32,3328,4509,27,30,31,1162,1215,26,
            28,1151,296,25,23,50,1246,106,76,77,
            108,1272,2289,3570,6862,6862,6862,6862,2276,6862,
            355,2291,357,1273,2882,350,1175,6862,388,4250,
            6862,6862,1770,35,1153,32,4945,589,27,30,
            31,1162,1215,375,28,6862,193,380,1048,649,
            385,4166,3327,35,1153,32,3328,590,27,30,
            31,1162,1215,26,28,1151,296,25,23,50,
            1246,106,76,77,108,2297,6862,3622,6862,6862,
            345,329,35,1892,425,600,2956,1508,6862,6862,
            56,5173,6862,6862,6862,1273,6862,6862,6862,6862,
            369,6862,6862,6862,355,2291,357,262,189,351,
            1175,6862,388,49,6862,6862,2133,6862,189,213,
            6862,6862,2630,3614,1845,47,3028,542,237,249,
            750,382,1048,649,385,6862,236,246,247,248,
            250,2956,431,6862,2180,6862,202,600,2505,600,
            243,35,1892,425,6862,368,6862,6862,6862,201,
            6862,6862,3695,200,203,204,205,206,207,262,
            189,3475,189,6862,539,541,6862,6862,2133,6862,
            2133,213,49,213,2630,5985,6862,6862,6862,6862,
            237,249,750,1845,47,6862,6862,6862,236,246,
            247,248,250,6862,517,6862,6862,6862,202,600,
            6862,3659,243,35,1892,425,6862,1478,6862,6862,
            6862,201,6862,229,211,200,203,204,205,206,
            207,262,189,329,35,1892,425,6862,6862,6862,
            2133,6862,6862,213,49,56,2630,6862,6862,6862,
            1273,6862,237,249,750,1845,2827,6862,6862,6862,
            236,246,247,248,250,49,603,6862,6862,6862,
            202,600,6862,189,6862,6862,1845,47,6862,2186,
            2822,3319,6862,201,6862,4250,209,200,203,204,
            205,206,207,262,189,243,35,1892,425,6862,
            2815,56,2133,6862,6862,213,1273,4166,2630,6862,
            6862,6862,6862,2700,237,249,750,6862,4250,6862,
            6862,6862,236,246,247,248,250,49,689,189,
            6862,6862,202,600,6862,6862,6862,1511,1845,2503,
            379,2594,4466,230,6862,201,4250,6862,210,200,
            203,204,205,206,207,262,189,243,35,1892,
            425,6862,2186,6862,2133,3557,6862,213,4166,56,
            2630,6862,6862,6862,600,56,237,249,750,6862,
            4250,6862,6862,542,236,246,247,248,250,49,
            775,6862,6862,6862,202,600,379,189,6862,6862,
            1845,47,379,6862,6862,1396,6862,201,6862,6862,
            220,200,203,204,205,206,207,262,189,6862,
            6862,3118,6862,6862,1042,6862,2133,3118,6862,213,
            540,541,2630,6862,6862,6862,6862,6862,237,249,
            750,6862,6862,6862,396,715,236,246,247,248,
            250,2086,6862,6862,6862,6862,202,6862,6862,3531,
            3104,3121,6862,6862,6862,6862,6862,6862,6862,201,
            6862,6862,3733,200,203,204,205,206,207,2382,
            35,1153,32,4862,4737,27,30,31,1162,1215,
            375,28,3327,35,1153,32,3328,6862,27,30,
            31,1162,1215,26,28,1151,296,25,23,50,
            1246,106,76,77,108,2357,243,35,1892,425,
            6862,6862,861,71,35,1892,425,600,3887,6862,
            243,35,1892,425,6862,6862,6862,6862,6862,6862,
            6862,6862,1296,6862,6862,6862,6267,4250,49,262,
            189,355,2291,357,6862,49,350,1175,2133,1845,
            47,213,49,6862,2630,6862,1845,764,349,262,
            237,249,750,1845,47,6862,6862,6862,236,246,
            247,248,250,1669,6862,6862,6862,6862,202,947,
            668,444,6008,6862,600,6862,6862,1763,6862,6862,
            6862,201,6862,6862,225,200,203,204,205,206,
            207,6862,6862,6862,6862,6862,262,189,6862,6862,
            342,346,2313,6862,56,2133,6862,6862,213,1273,
            6862,2630,445,446,447,3376,6862,237,249,750,
            6862,6862,6862,3653,6862,236,246,247,248,250,
            3645,1033,189,6862,6862,202,600,3373,6862,6862,
            3900,6862,2271,35,1892,425,6862,6862,201,6862,
            6862,219,200,203,204,205,206,207,262,189,
            71,35,1892,425,6862,6862,6862,2133,6862,6862,
            213,6862,6862,2630,49,6862,6862,6862,6862,237,
            249,750,6862,6862,6862,1845,47,236,246,247,
            248,250,49,3638,35,554,6862,202,6862,448,
            451,6862,6862,1845,2360,6862,271,296,6862,865,
            201,6862,6862,228,200,203,204,205,206,207,
            3327,35,1153,32,3328,6862,27,30,31,1162,
            1215,26,28,1151,296,25,23,50,1246,106,
            76,77,108,2367,266,1385,35,1153,32,4945,
            6862,27,30,31,1162,1215,375,28,243,35,
            1892,425,269,264,265,3327,35,1153,32,3328,
            6862,27,30,31,1162,1215,26,28,1151,296,
            25,23,50,1246,106,76,77,85,6862,6862,
            49,6862,6862,6862,6862,6862,6862,6862,6862,2956,
            6862,1845,47,276,279,282,627,705,6862,6862,
            6862,6862,6862,369,6862,6862,6862,355,2291,357,
            6862,6862,353,1175,6862,1810,2303,3255,3312,3907,
            6021,3327,1939,1153,1986,3328,6862,27,30,31,
            1162,1215,26,28,1151,296,25,23,50,1246,
            106,76,77,84,3327,35,1153,32,3328,6862,
            27,30,31,1162,1215,26,28,1151,296,25,
            23,50,1246,106,76,77,83,6862,6862,6862,
            6862,563,564,568,3327,35,1153,32,3328,6862,
            27,30,31,1162,1215,26,28,1151,296,25,
            23,50,1246,106,76,77,82,3924,3327,35,
            1153,32,3328,6862,27,30,31,1162,1215,26,
            28,1151,296,25,23,50,1246,106,76,77,
            81,3327,35,1153,32,3328,6862,27,30,31,
            1162,1215,26,28,1151,296,25,23,50,1246,
            106,76,77,80,3327,35,1153,32,3328,6862,
            27,30,31,1162,1215,26,28,1151,296,25,
            23,50,1246,106,76,77,79,3327,35,1153,
            32,3328,6862,27,30,31,1162,1215,26,28,
            1151,296,25,23,50,1246,106,76,77,78,
            3033,35,1153,32,3328,6862,27,30,31,1162,
            1215,26,28,1151,296,25,23,50,1246,106,
            76,77,104,3327,35,1153,32,3328,6862,27,
            30,31,1162,1215,26,28,1151,296,25,23,
            50,1246,106,76,77,110,3327,35,1153,32,
            3328,6862,27,30,31,1162,1215,26,28,1151,
            296,25,23,50,1246,106,76,77,109,3327,
            35,1153,32,3328,6862,27,30,31,1162,1215,
            26,28,1151,296,25,23,50,1246,106,76,
            77,107,3327,35,1153,32,3328,6862,27,30,
            31,1162,1215,26,28,1151,296,25,23,50,
            1246,106,76,77,105,3274,35,1153,32,3328,
            6862,27,30,31,1162,1215,26,28,1151,296,
            25,23,50,1246,86,76,77,1603,243,35,
            1892,425,4250,6862,6862,6862,6862,6862,6862,56,
            1870,6862,6862,6862,4250,4250,6862,6862,6862,2459,
            35,1892,425,1959,262,6862,6862,6862,4250,6862,
            49,6862,71,35,1892,425,379,262,6862,6862,
            6862,1845,47,6862,6862,239,249,750,6862,6862,
            262,49,6862,238,246,247,248,250,239,249,
            750,3118,1845,47,49,1857,238,246,247,248,
            250,239,249,750,6862,1845,815,6862,6862,238,
            246,247,248,250,6862,2760,875,240,242,244,
            3376,6862,251,241,243,6862,6862,6862,6862,6862,
            240,242,244,3376,6862,251,241,243,6862,6862,
            6862,6862,56,240,242,244,3376,4250,251,241,
            243,6862,3589,35,1892,425,4448,1914,6862,6125,
            6862,6862,6862,6862,6862,272,296,6862,56,379,
            1961,6862,6125,600,56,6862,6862,6862,6862,600,
            6862,6862,6862,2954,308,6125,6862,6862,6862,6862,
            6862,6862,6862,6862,3118,379,189,6862,6862,6862,
            6862,379,189,266,2350,1385,35,1153,32,4945,
            1396,27,30,31,1162,1215,375,28,546,6862,
            3118,270,264,265,6862,6862,3118,6862,2315,35,
            1153,32,4862,4220,27,30,31,1162,1215,375,
            28,3687,35,554,2285,6862,6862,2048,6862,6862,
            2549,6862,4250,6862,272,296,6862,6862,309,2956,
            6862,6862,277,280,283,627,705,440,6862,6862,
            6862,1692,6862,369,262,6862,4250,355,2291,357,
            6862,6862,351,1175,6862,6862,6862,6862,6862,6862,
            286,6862,266,6862,6862,239,249,750,262,6862,
            352,3520,357,238,246,247,248,250,6862,6862,
            270,264,265,6862,71,35,1892,425,6862,239,
            249,750,6862,6862,6862,6862,6862,238,246,247,
            248,250,6862,6862,6862,6862,6862,240,242,244,
            3376,6862,582,241,243,1781,49,6862,6862,6862,
            4250,277,280,283,627,705,6862,1845,628,6862,
            2137,240,242,244,3376,4250,581,241,243,6862,
            56,6862,262,6862,6862,600,6862,6862,6862,6862,
            6862,71,35,1892,425,6862,6862,262,6862,6862,
            6862,6862,6862,239,249,750,6862,379,189,6862,
            2887,238,246,247,248,250,221,2260,239,249,
            750,5173,4250,49,6862,6862,238,246,247,248,
            250,2226,2420,6862,1845,2569,4250,6862,6862,563,
            564,569,6862,6862,4166,240,242,244,3376,2260,
            252,241,243,5173,4250,6862,6862,6862,262,6862,
            240,242,244,3376,6862,341,241,243,6862,6862,
            6862,2956,6862,6862,6862,6862,4166,6862,56,239,
            249,750,6862,600,6862,368,6862,238,246,247,
            248,250,6862,6862,6862,6862,3745,71,35,1892,
            425,6862,6862,2956,56,379,189,6862,6862,4250,
            6862,56,6862,6862,221,4312,4250,368,6862,6862,
            396,240,242,244,3376,6862,536,241,243,49,
            2420,379,6862,6862,56,2694,3104,3121,379,600,
            1845,2701,6862,6862,6862,6862,6862,4682,6862,6862,
            6862,6862,396,6862,6862,6862,3118,6862,6862,6862,
            6862,379,189,3118,6862,6862,6862,2694,3104,3121,
            221,6862,6862,6862,6862,6862,6862,6862,6862,6862,
            544,6862,6862,6862,6862,6862,2420,597,6862,6862,
            6862,6862,6862,6862,3776,6862,6862,6862,6862,6862,
            6862,6862,6862,6862,6862,6862,6862,6862,6862,6862,
            6862,6862,6862,6862,6862,6862,6862,6862,6862,6862,
            6862,6862,6862,6862,6862,6862,6862,6862,6862,6862,
            6862,6862,6862,6862,6862,6862,6862,6862,6862,6862,
            6862,6862,6862,6862,6862,6862,6862,6862,6862,6862,
            3777,6862,0,39,6877,0,39,6876,0,1150,
            29,0,477,1213,0,491,1300,0,38,963,
            0,38,6877,0,38,6876,0,4031,126,0,
            1,481,0,495,812,0,494,880,0,1458,
            91,0,1150,424,0,35,33,0,32,34,
            0,39,963,0,1,643,0,1,7169,0,
            1,7168,0,1,7167,0,1,7166,0,1,
            7165,0,1,7164,0,1,7163,0,1,7162,
            0,1,7161,0,1,7160,0,1,7159,0,
            39,1,6877,0,39,1,6876,0,318,431,
            0,318,323,0,7130,275,0,7129,275,0,
            7236,275,0,7235,275,0,7157,275,0,7156,
            275,0,7155,275,0,7154,275,0,7153,275,
            0,7152,275,0,7151,275,0,7150,275,0,
            7169,275,0,7168,275,0,7167,275,0,7166,
            275,0,7165,275,0,7164,275,0,7163,275,
            0,7162,275,0,7161,275,0,7160,275,0,
            7159,275,0,39,6877,275,0,39,6876,275,
            0,6900,275,0,6877,48,0,6876,48,0,
            6868,1,0,6867,1,0,639,271,0,32,
            425,0,29,424,0,43,6898,0,43,37,
            0,4031,128,0,4031,127,0,1,5785,0,
            1,5435,0,1,5524,0,1,5554,0,1,
            5578,0,1,5601,0,1,5624,0,1,5647,
            0,1410,1,0,1,2235,0,1,5501,0,
            1,6884,0,1,6883,0,1,6882,0,1,
            6881,0,1,6880,0,1,6879,0,1,6878,
            0,1,642,0,1,645,0,1,972,0,
            1,978,0,1,1037,0,1,672,0,39,
            1,0,367,482,0,6900,1,0,47,37,
            0,1,92,0,6877,275,0,6876,275,0,
            538,3375,0,6900,1,263,0,39,1,263,
            0,263,453,0,6877,37,0,6876,37,0,
            6877,2,37,0,6876,2,37,0,6877,36,
            0,6876,36,0,6898,45,0,37,45,0,
            6872,442,0,6871,442,0,1,653,0,1,
            963,0,263,452,0,3111,354,0,367,95,
            0,35,73,0,1,367,0,2883,313,0,
            538,6051,0,1,263,0,263,254,0,1,
            919,0,1,956,0,263,253,0,6874,1,
            0,6870,1,0,1,263,3650,0,6871,263,
            0,3651,263,0,6874,420,0,6873,420,0,
            3661,263,0,10,12,0,8,10,12,0,
            3730,227,0,218,5239,0,3735,420,0,8,
            12,0
        };
    };
    public final static char baseAction[] = BaseAction.baseAction;
    @Override
    public final int baseAction(int index) { return baseAction[index]; }
    public final static char lhs[] = baseAction;
    @Override
    public final int lhs(int index) { return lhs[index]; };

    public interface TermCheck {
        public final static byte termCheck[] = {0,
            0,1,2,3,4,5,6,7,8,9,
            10,11,12,13,14,15,16,17,18,19,
            20,21,22,23,24,25,26,27,28,29,
            30,31,32,33,34,35,36,37,38,39,
            40,41,42,43,44,45,46,47,48,49,
            50,51,52,53,0,0,56,57,58,59,
            0,61,62,63,0,65,66,67,0,69,
            0,1,2,73,74,75,76,77,78,79,
            80,81,82,83,84,85,0,1,2,3,
            4,5,6,7,8,9,10,11,12,13,
            14,15,16,17,18,19,20,21,22,23,
            24,25,26,27,28,29,30,31,32,33,
            34,35,36,37,38,39,40,41,42,43,
            44,45,46,47,48,49,50,51,52,53,
            86,87,56,57,58,59,0,61,62,63,
            4,65,66,67,94,69,92,93,0,73,
            74,75,76,77,78,79,80,81,82,83,
            84,85,0,1,2,3,4,5,6,7,
            8,9,10,11,12,13,14,15,16,17,
            18,19,20,21,22,23,24,25,26,27,
            28,29,30,31,32,33,34,35,36,37,
            38,39,40,41,42,43,44,45,46,47,
            48,49,50,51,52,53,0,0,56,57,
            58,59,0,61,62,63,4,65,66,67,
            0,69,0,1,2,73,74,75,76,77,
            78,79,80,81,82,83,84,85,0,1,
            2,3,4,5,6,7,8,9,10,11,
            12,13,14,15,16,17,18,19,20,21,
            22,23,24,25,26,27,28,29,30,31,
            32,33,34,35,36,37,38,39,40,41,
            42,43,44,45,46,47,48,49,50,51,
            52,53,86,87,56,57,58,59,0,61,
            62,63,95,65,66,67,0,69,0,1,
            2,0,74,75,76,77,78,79,80,81,
            82,83,84,85,0,1,2,3,4,5,
            6,7,8,9,10,11,12,13,14,15,
            16,17,18,19,20,21,22,23,24,25,
            26,27,28,29,30,31,32,33,34,35,
            36,37,38,39,40,41,42,43,44,45,
            46,47,48,49,50,51,52,53,0,68,
            56,57,58,59,0,61,62,63,0,65,
            66,67,0,69,0,3,0,0,74,75,
            76,77,78,79,80,81,82,83,84,85,
            0,1,2,3,4,5,6,7,8,9,
            10,11,12,13,14,15,16,17,18,19,
            20,21,22,23,24,25,26,27,28,29,
            30,31,32,33,34,35,36,37,38,39,
            40,41,42,43,44,45,46,47,48,49,
            50,51,52,53,86,87,56,57,58,59,
            0,61,62,63,0,65,66,67,94,69,
            86,87,86,87,74,75,76,77,78,79,
            80,81,82,83,84,85,0,1,2,3,
            4,5,6,7,8,9,10,11,12,13,
            14,15,16,17,18,19,20,21,22,23,
            24,25,26,27,28,29,30,31,32,33,
            34,35,36,37,38,39,40,41,42,43,
            44,45,46,47,48,49,50,51,52,53,
            0,0,56,57,58,59,0,61,62,63,
            0,65,66,67,94,69,92,93,0,0,
            74,75,76,77,78,79,80,81,82,83,
            84,85,0,1,2,3,4,5,6,7,
            8,9,10,11,12,13,14,15,16,17,
            18,19,20,21,22,23,24,25,26,27,
            28,29,30,31,32,33,34,35,36,37,
            38,39,40,41,42,43,44,45,46,47,
            48,49,50,51,52,53,86,87,56,57,
            58,59,0,61,62,63,95,65,66,67,
            94,69,92,93,86,87,74,75,76,77,
            78,79,80,81,82,83,84,85,0,1,
            2,3,4,5,6,7,8,9,10,11,
            12,13,14,15,16,17,18,19,20,21,
            22,23,24,25,26,27,28,29,30,31,
            32,33,34,35,36,37,38,39,40,41,
            42,43,44,45,46,47,48,49,50,51,
            52,53,0,0,56,57,58,59,0,61,
            62,63,0,65,66,67,0,69,0,1,
            2,5,74,75,76,77,78,79,80,81,
            82,83,84,85,0,1,2,3,4,5,
            6,7,8,9,10,11,12,13,14,15,
            16,17,18,19,20,21,22,23,24,25,
            26,27,28,29,30,31,32,33,34,35,
            36,37,38,39,40,41,42,43,44,45,
            46,47,48,49,50,51,52,53,86,87,
            56,57,58,59,0,61,62,63,4,65,
            66,67,0,69,101,102,4,95,74,75,
            76,77,78,79,80,81,82,83,84,85,
            0,1,2,3,4,5,6,7,8,9,
            10,11,12,13,14,15,16,17,18,19,
            20,21,22,23,24,25,26,27,28,29,
            30,31,32,33,34,35,36,37,38,39,
            40,41,42,43,44,45,46,47,48,49,
            50,51,52,53,0,0,56,57,58,59,
            0,61,62,63,0,65,66,67,0,69,
            0,1,2,0,74,75,76,77,78,79,
            80,81,82,83,84,85,0,1,2,3,
            4,5,6,7,8,9,10,11,12,13,
            14,15,16,17,18,19,20,21,22,23,
            24,25,26,27,28,29,30,31,32,33,
            34,35,36,37,38,39,40,41,42,43,
            44,45,46,47,48,49,50,51,52,53,
            86,87,56,57,58,59,0,61,62,63,
            0,65,66,67,4,69,92,93,0,0,
            74,75,76,77,78,79,80,81,82,83,
            84,85,0,1,2,3,4,5,6,7,
            8,9,10,11,12,13,14,15,16,17,
            18,19,20,21,22,23,24,25,26,27,
            28,29,30,31,32,33,34,35,36,37,
            38,39,40,41,42,43,44,45,46,47,
            48,49,50,51,52,53,68,0,56,57,
            58,59,0,61,62,63,9,65,66,67,
            0,69,96,0,1,2,74,75,76,77,
            78,79,80,81,82,83,84,85,0,1,
            2,3,4,5,6,7,8,40,10,11,
            12,13,14,15,16,17,18,19,20,21,
            22,23,24,25,26,27,28,29,30,31,
            32,33,34,35,36,37,38,39,55,41,
            42,43,44,45,46,47,48,49,50,51,
            52,53,0,0,56,57,58,59,0,1,
            2,3,4,5,6,7,8,9,10,11,
            12,13,14,15,16,17,18,19,20,21,
            22,23,24,25,26,27,28,29,30,31,
            32,33,0,1,2,0,4,0,40,0,
            1,2,3,4,5,6,7,8,0,1,
            2,53,0,55,56,57,58,5,0,61,
            62,63,0,1,2,3,4,0,6,71,
            8,73,5,38,7,38,0,0,1,2,
            3,4,5,6,7,8,88,11,12,13,
            14,15,16,17,18,19,20,21,22,23,
            24,25,26,27,28,29,30,31,32,33,
            71,0,114,115,116,0,1,2,3,4,
            5,6,7,8,9,10,11,12,13,14,
            15,16,17,18,19,20,21,22,23,24,
            25,26,27,28,29,30,31,32,33,91,
            0,99,100,0,0,40,98,0,0,1,
            2,3,4,5,6,7,8,0,53,0,
            55,56,57,58,0,64,61,62,63,68,
            0,0,0,3,0,5,71,7,73,9,
            6,22,23,24,25,26,27,28,29,30,
            31,32,33,88,0,1,2,3,4,55,
            6,54,8,0,34,35,36,37,60,0,
            40,64,3,70,0,1,2,60,70,114,
            115,116,0,9,54,0,1,2,3,4,
            60,6,0,8,64,64,89,90,68,68,
            70,71,72,73,101,102,103,104,105,106,
            107,108,109,110,111,112,86,87,0,89,
            90,91,92,93,94,95,96,97,98,99,
            100,101,102,103,104,105,106,107,108,109,
            110,111,112,69,120,60,64,117,118,119,
            120,0,34,35,3,0,5,0,7,4,
            9,0,1,2,3,4,9,6,0,8,
            0,0,1,2,3,4,5,0,7,0,
            10,4,5,91,7,34,35,36,37,0,
            98,40,3,22,23,24,25,26,27,28,
            29,30,31,32,33,54,0,1,2,54,
            4,60,0,1,2,64,4,0,6,68,
            8,70,71,72,73,0,69,59,0,1,
            2,60,71,54,6,64,8,86,87,68,
            89,90,91,92,93,94,95,96,97,98,
            99,100,101,102,103,104,105,106,107,108,
            109,110,111,112,0,1,2,55,117,118,
            119,120,0,1,2,3,4,5,6,7,
            8,9,10,11,12,13,14,15,16,17,
            18,19,20,21,22,23,24,25,26,27,
            28,29,30,31,32,33,0,0,1,2,
            3,4,40,6,0,8,0,1,2,55,
            4,5,0,7,0,53,0,55,56,57,
            58,0,0,61,62,63,4,65,7,114,
            115,116,0,1,2,73,22,23,24,25,
            26,27,28,29,30,31,32,33,0,53,
            88,0,1,2,3,4,5,6,7,8,
            9,10,11,12,13,14,15,16,17,18,
            19,20,21,22,23,24,25,26,27,28,
            29,30,31,32,33,0,70,0,0,1,
            2,40,4,0,6,91,8,4,66,67,
            0,0,98,91,53,54,55,56,57,58,
            98,0,61,62,63,22,65,101,102,103,
            104,105,106,107,108,109,110,111,112,0,
            1,2,3,4,5,6,7,8,38,88,
            0,1,2,3,4,5,6,7,8,9,
            10,11,12,13,14,15,16,17,18,19,
            20,21,22,23,24,25,26,27,28,29,
            30,31,32,33,0,1,2,0,4,5,
            40,7,71,0,1,2,9,4,5,60,
            7,0,0,53,3,55,56,57,58,0,
            113,61,62,63,0,65,0,114,115,116,
            0,1,2,73,22,23,24,25,26,27,
            28,29,30,31,32,33,0,0,88,0,
            1,2,3,4,5,6,7,8,9,10,
            11,12,13,14,15,16,17,18,19,20,
            21,22,23,24,25,26,27,28,29,30,
            31,32,33,0,1,2,60,4,5,40,
            7,0,1,2,0,4,0,6,4,8,
            54,0,53,7,55,56,57,58,0,0,
            61,62,63,0,65,118,22,0,1,2,
            0,4,73,22,23,24,25,26,27,28,
            29,30,31,32,33,89,90,88,0,1,
            2,3,4,5,6,7,8,9,10,11,
            12,13,14,15,16,17,18,19,20,21,
            22,23,24,25,26,27,28,29,30,31,
            32,33,55,0,1,2,0,64,40,6,
            60,8,0,1,2,0,0,0,6,0,
            0,53,5,55,56,57,58,0,9,61,
            62,63,0,65,96,3,0,1,2,23,
            24,73,22,23,24,25,26,27,28,29,
            30,31,32,33,0,0,88,0,1,2,
            3,4,5,6,7,8,9,10,11,12,
            13,14,15,16,17,18,19,20,21,22,
            23,24,25,26,27,28,29,30,31,32,
            33,72,60,0,0,68,64,40,5,0,
            68,0,66,67,0,86,87,3,54,54,
            53,96,55,56,57,58,99,100,61,62,
            63,0,65,22,23,24,25,26,27,28,
            29,30,31,32,33,0,1,2,3,4,
            5,0,7,89,90,88,0,1,2,3,
            4,5,6,7,8,9,10,11,12,13,
            14,15,16,17,18,19,20,21,22,23,
            24,25,26,27,28,29,30,31,32,33,
            0,1,2,0,4,64,40,0,0,0,
            0,0,99,100,0,60,9,3,9,53,
            9,55,56,57,58,64,0,61,62,63,
            0,65,22,23,24,25,26,27,28,29,
            30,31,32,33,0,1,2,40,4,40,
            6,40,8,0,88,0,1,2,3,4,
            5,6,7,8,9,10,11,12,13,14,
            15,16,17,18,19,20,21,22,23,24,
            25,26,27,28,29,30,31,32,33,0,
            1,2,0,4,5,40,7,0,9,55,
            0,1,2,95,7,0,0,54,53,0,
            55,56,57,58,9,9,61,62,63,0,
            65,0,1,2,3,4,5,6,7,8,
            0,10,11,12,13,14,15,16,17,18,
            19,20,21,88,0,1,2,3,4,0,
            6,0,8,9,3,34,35,36,37,38,
            39,72,41,42,43,44,45,46,47,48,
            49,50,51,52,0,1,2,72,72,5,
            59,0,0,62,40,3,97,66,67,0,
            1,2,3,4,5,6,7,8,0,10,
            11,12,13,14,15,16,17,18,19,20,
            21,0,1,2,3,4,97,6,0,8,
            9,70,113,34,35,36,37,38,39,55,
            41,42,43,44,45,46,47,48,49,50,
            51,52,0,1,2,0,0,0,59,0,
            3,40,54,64,9,66,67,0,1,2,
            3,4,5,6,7,8,9,10,11,12,
            13,14,15,16,17,18,19,20,21,0,
            34,35,3,34,35,0,1,2,0,1,
            2,34,35,36,37,38,39,55,41,42,
            43,44,45,46,47,48,49,50,51,52,
            0,1,2,68,96,0,59,72,0,0,
            0,0,7,0,3,0,69,9,9,9,
            73,0,1,2,3,4,5,6,7,8,
            55,10,11,12,13,14,15,16,17,18,
            19,20,21,0,1,2,0,0,0,6,
            40,0,0,0,3,34,35,36,37,38,
            39,0,41,42,43,44,45,46,47,48,
            49,50,51,52,0,1,2,68,68,64,
            59,73,73,0,71,0,3,66,67,0,
            1,2,3,4,5,6,7,8,55,10,
            11,12,13,14,15,16,17,18,19,20,
            21,60,0,0,0,54,64,64,71,0,
            0,9,9,34,35,36,37,38,39,55,
            41,42,43,44,45,46,47,48,49,50,
            51,52,0,1,2,0,0,0,59,3,
            89,90,0,0,9,66,67,0,1,2,
            3,4,5,6,7,8,9,10,11,12,
            13,14,15,16,17,18,19,20,21,60,
            0,69,97,0,70,72,3,0,0,0,
            70,34,35,36,37,38,39,55,41,42,
            43,44,45,46,47,48,49,50,51,52,
            97,64,0,1,2,0,59,0,73,0,
            0,0,70,3,71,0,69,0,1,2,
            3,4,5,6,7,8,9,10,11,12,
            13,14,15,16,17,18,19,20,21,60,
            0,1,2,0,74,0,3,0,5,6,
            7,34,35,36,37,38,39,55,41,42,
            43,44,45,46,47,48,49,50,51,52,
            60,0,1,2,0,60,59,34,35,36,
            37,70,39,0,0,0,69,0,3,0,
            3,113,0,9,9,55,0,54,0,54,
            0,54,0,60,0,3,97,64,10,66,
            67,68,0,70,22,23,24,25,26,27,
            28,29,30,31,32,33,55,0,54,86,
            87,0,89,90,91,92,93,94,95,96,
            0,10,99,100,101,60,103,104,105,106,
            107,108,109,110,111,112,72,72,54,61,
            117,0,1,2,3,4,5,6,7,8,
            9,10,11,12,13,14,15,16,17,18,
            19,20,21,0,53,0,55,0,0,4,
            0,0,4,3,54,34,35,36,37,38,
            39,10,41,42,43,44,45,46,47,48,
            49,50,51,52,0,1,2,3,4,5,
            6,7,8,0,10,11,12,13,14,15,
            16,17,18,19,20,21,0,54,0,54,
            113,54,54,0,53,9,55,64,34,35,
            36,37,38,39,0,41,42,43,44,45,
            46,47,48,49,50,51,52,0,0,0,
            0,0,89,90,3,0,9,0,55,118,
            66,67,0,1,2,3,4,5,6,7,
            8,0,10,11,12,13,14,15,16,17,
            18,19,20,21,0,0,68,0,72,55,
            0,0,0,0,71,0,34,35,36,37,
            38,39,54,41,42,43,44,45,46,47,
            48,49,50,51,52,0,0,68,68,71,
            73,59,0,1,2,3,4,5,6,7,
            8,0,10,11,12,13,14,15,16,17,
            18,19,20,21,54,54,54,54,0,54,
            0,0,0,0,64,71,34,35,36,37,
            38,39,75,41,42,43,44,45,46,47,
            48,49,50,51,52,0,121,0,3,89,
            90,0,60,0,1,2,3,4,5,6,
            7,8,0,10,11,12,13,14,15,16,
            17,18,19,20,21,54,0,0,0,0,
            3,3,3,0,0,64,68,34,35,36,
            37,38,39,70,41,42,43,44,45,46,
            47,48,49,50,51,52,0,0,0,3,
            89,90,59,0,1,2,3,4,5,6,
            7,8,71,10,11,12,13,14,15,16,
            17,18,19,20,21,0,0,0,54,0,
            3,0,0,0,68,0,0,34,35,36,
            37,38,39,70,41,42,43,44,45,46,
            47,48,49,50,51,52,0,0,0,0,
            0,0,59,0,1,2,3,4,5,6,
            7,8,0,10,11,12,13,14,15,16,
            17,18,19,20,21,0,0,0,0,0,
            0,0,0,0,0,70,70,34,35,36,
            37,38,39,71,41,42,43,44,45,46,
            47,48,49,50,51,52,0,0,0,0,
            0,0,59,0,1,2,3,4,5,6,
            7,8,71,10,11,12,13,14,15,16,
            17,18,19,20,21,0,0,0,0,0,
            0,0,0,0,0,70,70,34,35,36,
            37,38,39,0,41,42,43,44,45,46,
            47,48,49,50,51,52,0,1,2,3,
            4,5,6,7,8,0,10,11,12,13,
            14,15,16,17,18,19,20,21,0,0,
            0,0,0,0,0,0,0,0,0,0,
            34,35,36,37,38,39,0,41,42,43,
            44,45,46,47,48,49,50,51,52,0,
            1,2,3,4,5,6,7,8,0,10,
            11,12,13,14,15,16,17,18,19,20,
            21,0,0,0,0,0,0,0,0,0,
            0,0,0,34,35,36,37,38,39,0,
            41,42,43,44,45,46,47,48,49,50,
            51,52,0,1,2,3,4,5,6,7,
            8,0,10,11,12,13,14,15,16,17,
            18,19,20,21,0,0,0,0,0,0,
            0,0,0,0,0,0,34,35,36,37,
            38,39,0,41,42,43,44,45,46,47,
            48,49,50,51,52,0,1,2,3,4,
            5,6,7,8,0,10,11,12,13,14,
            15,16,17,18,19,20,21,0,0,0,
            0,0,0,0,0,0,9,0,0,34,
            35,36,37,38,39,0,41,42,43,44,
            45,46,47,48,49,50,51,52,0,1,
            2,0,4,0,0,0,0,0,10,11,
            12,13,14,15,16,17,18,19,20,21,
            22,23,24,25,26,27,28,29,30,31,
            32,33,0,0,0,0,0,0,0,72,
            0,0,0,0,0,0,0,0,0,1,
            2,53,4,0,56,57,58,0,10,11,
            12,13,14,15,16,17,18,19,20,21,
            22,23,24,25,26,27,28,29,30,31,
            32,33,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,1,2,
            0,53,0,0,56,57,58,10,11,12,
            13,14,15,16,17,18,19,20,21,22,
            23,24,25,26,27,28,29,30,31,32,
            33,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,1,2,0,
            53,0,0,56,57,58,10,11,12,13,
            14,15,16,17,18,19,20,21,22,23,
            24,25,26,27,28,29,30,31,32,33,
            0,0,0,0,1,2,3,4,5,6,
            7,8,9,0,0,0,0,3,0,53,
            0,0,56,57,58,22,23,24,25,26,
            27,28,29,30,31,32,33,0,0,1,
            2,3,4,40,6,0,8,9,3,0,
            36,37,0,0,9,0,0,54,0,0,
            0,0,0,60,0,1,2,3,4,5,
            6,7,8,9,60,72,0,0,0,0,
            0,0,0,0,0,0,22,23,24,25,
            26,27,28,29,30,31,32,33,60,0,
            0,0,0,0,40,60,0,0,0,64,
            72,0,0,68,0,0,0,72,0,0,
            0,0,0,0,60,0,0,0,0,0,
            0,117,0,119,0,0,72,11,12,13,
            14,15,16,17,18,19,20,21,22,23,
            24,25,26,27,28,29,30,31,32,33,
            0,1,2,3,4,5,0,7,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,22,23,24,25,26,27,28,29,
            30,31,32,33,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            60,0,0,0,64,0,0,0,68,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0
        };
    };
    public final static byte termCheck[] = TermCheck.termCheck;
    @Override
    public final int termCheck(int index) { return termCheck[index]; }

    public interface TermAction {
        public final static char termAction[] = {0,
            6862,6824,6803,6803,6803,6803,6803,6803,6803,6840,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            6828,1,1,1,1,1,1,1,1,1,
            1,1,1,1,121,1,1,1,1,1,
            133,2753,7070,2290,129,3567,1,1,367,6873,
            6862,6876,6877,6869,980,3658,3062,3270,2180,3649,
            4730,3657,1508,3656,3886,3655,10,6843,6843,6843,
            6843,6843,6843,6843,6843,6843,6843,6843,6843,6843,
            6843,6843,6843,6843,6843,6843,6843,6843,6843,6843,
            6843,6843,6843,6843,6843,6843,6843,6843,6843,6843,
            6843,6843,6843,6843,6843,6843,6843,6843,6843,6843,
            6843,6843,6843,6843,6843,6843,6843,6843,6843,6843,
            4322,4421,6843,6843,6843,6843,39,6843,6843,6843,
            6900,6843,6843,6843,3582,6843,3779,3747,432,6843,
            6843,6843,6843,6843,6843,6843,6843,6843,6843,6843,
            6843,6843,8,6846,6846,6846,6846,6846,6846,6846,
            6846,6846,6846,6846,6846,6846,6846,6846,6846,6846,
            6846,6846,6846,6846,6846,6846,6846,6846,6846,6846,
            6846,6846,6846,6846,6846,6846,6846,6846,6846,6846,
            6846,6846,6846,6846,6846,6846,6846,6846,6846,6846,
            6846,6846,6846,6846,6846,6846,125,135,6846,6846,
            6846,6846,6862,6846,6846,6846,1320,6846,6846,6846,
            333,6846,6862,6607,6604,6846,6846,6846,6846,6846,
            6846,6846,6846,6846,6846,6846,6846,6846,6862,6824,
            6803,6803,6803,6803,6803,6803,6803,6831,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,6828,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,4322,4421,1,1,1,1,421,2753,
            7070,2290,3490,3567,1,1,6862,6873,48,6607,
            6604,190,980,3658,3062,3270,2180,3649,4730,3657,
            1508,3656,3886,3655,6862,6824,6803,6803,6803,6803,
            6803,6803,6803,6831,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,6828,1,1,1,1,1,
            1,1,1,1,1,1,1,1,124,1577,
            1,1,1,1,134,2753,7070,2290,6862,3567,
            1,1,6862,6873,123,5948,122,6862,980,3658,
            3062,3270,2180,3649,4730,3657,1508,3656,3886,3655,
            6862,6824,6803,6803,6803,6803,6803,6803,6803,6831,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            6828,1,1,1,1,1,1,1,1,1,
            1,1,1,1,4322,4421,1,1,1,1,
            153,2753,7070,2290,130,3567,1,1,3582,6873,
            4322,4421,4322,4421,980,3658,3062,3270,2180,3649,
            4730,3657,1508,3656,3886,3655,6862,6824,6803,6803,
            6803,6803,6803,6803,6803,6831,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,6828,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            141,136,1,1,1,1,154,2753,7070,2290,
            149,3567,1,1,3617,6873,3779,3747,145,6862,
            980,3658,3062,3270,2180,3649,4730,3657,1508,3656,
            3886,3655,6862,6824,6803,6803,6803,6803,6803,6803,
            6803,6831,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,6828,1,1,1,1,1,1,1,
            1,1,1,1,1,1,4322,4421,1,1,
            1,1,6862,2753,7070,2290,3490,3567,1,1,
            3617,6873,3851,3811,4322,4421,980,3658,3062,3270,
            2180,3649,4730,3657,1508,3656,3886,3655,6862,6824,
            6803,6803,6803,6803,6803,6803,6803,6831,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,6828,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,144,139,1,1,1,1,6862,2753,
            7070,2290,155,3567,1,1,6862,6873,434,6876,
            6877,1800,980,3658,3062,3270,2180,3649,4730,3657,
            1508,3656,3886,3655,6862,6824,6803,6803,6803,6803,
            6803,6803,6803,6831,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,6828,1,1,1,1,1,
            1,1,1,1,1,1,1,1,4322,4421,
            1,1,1,1,6862,2753,7070,2290,2284,3567,
            1,1,432,6873,1079,3893,425,3526,980,3658,
            3062,3270,2180,3649,4730,3657,1508,3656,3886,3655,
            6862,6824,6803,6803,6803,6803,6803,6803,6803,6831,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            6828,1,1,1,1,1,1,1,1,1,
            1,1,1,1,142,6862,1,1,1,1,
            6862,2753,7070,2290,150,3567,1,1,6862,6873,
            36,6761,6758,6862,980,3658,3062,3270,2180,3649,
            4730,3657,1508,3656,3886,3655,6862,6824,6803,6803,
            6803,6803,6803,6803,6803,6831,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,6828,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            4322,4421,1,1,1,1,137,2753,7070,2290,
            6862,3567,1,1,1118,6873,3851,3811,552,6862,
            980,3658,3062,3270,2180,3649,4730,3657,1508,3656,
            3886,3655,6862,3650,1,1,1,1,1,1,
            1,3651,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,6871,1,1,1,1,1,1,1,
            1,1,1,1,1,1,994,442,1,1,
            1,1,6862,2753,7070,2290,6770,3567,1,1,
            6862,6873,3396,6862,10586,10586,980,3658,3062,3270,
            2180,3649,4730,3657,1508,3656,3886,3655,39,6426,
            6423,5019,1410,5578,5501,5601,2235,6773,1262,7161,
            7159,7168,7167,7163,7164,7162,7165,7166,7169,7160,
            7156,7235,7236,7150,7157,7153,7129,7155,7154,7151,
            7152,7130,5554,5524,5647,5624,6881,5435,6898,645,
            1037,6883,972,5785,978,6884,6882,642,6878,6879,
            6880,7297,6862,6862,1198,7298,7299,1528,6862,6737,
            6737,263,6733,263,263,263,263,6741,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,323,6521,6521,6862,318,6862,263,6862,
            6514,6510,653,6661,6794,963,6794,2235,333,6876,
            6877,1,115,6730,1,1,1,5390,111,1107,
            7311,1556,1,6514,6510,653,6661,6862,963,263,
            2235,453,1570,820,1407,3580,257,345,6514,6510,
            653,6661,6794,963,6794,2235,7399,7161,7159,7168,
            7167,7163,7164,7162,7165,7166,7169,7160,7156,7235,
            7236,7150,7157,7153,7129,7155,7154,7151,7152,7130,
            3072,6862,7334,7335,7336,6862,6737,6737,263,6733,
            263,263,263,263,6782,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,5693,
            6862,5142,4702,139,37,263,5716,126,403,6514,
            6510,4206,6661,1,963,1,2235,495,1,258,
            6730,1,1,1,6862,6201,1107,7311,1556,4930,
            33,6862,6862,6465,6862,6465,263,6465,452,6465,
            1904,7156,7235,7236,7150,7157,7153,7129,7155,7154,
            7151,7152,7130,7399,367,6426,6423,653,1410,6898,
            963,4058,2235,6862,6465,6465,6465,6465,1321,6862,
            6465,6447,639,2097,6862,6876,6877,6453,1368,7334,
            7335,7336,6862,6874,6465,1,6514,6510,4206,6661,
            6465,963,114,2235,6465,3729,4004,3931,6465,4930,
            6465,6465,6465,6465,1079,3893,2050,2003,1956,1909,
            1862,1815,1768,1721,1674,1627,6465,6465,118,6465,
            6465,6465,6465,6465,6465,6465,6465,6465,6465,6465,
            6465,6465,6465,6465,6465,6465,6465,6465,6465,6465,
            6465,6465,6465,6873,6422,1321,2699,6465,6465,6465,
            6465,6862,4638,4611,6468,433,6468,6862,6468,424,
            6468,1,6514,6510,653,6661,6874,963,595,2235,
            337,37,6877,6877,6877,6877,6877,39,6877,6862,
            7198,6900,367,5693,367,6468,6468,6468,6468,91,
            5716,6468,6459,6877,6877,6877,6877,6877,6877,6877,
            6877,6877,6877,6877,6877,6468,6862,6426,6423,1150,
            6900,6468,6862,6426,6423,6468,1410,6862,6471,6468,
            2235,6468,6468,6468,6468,476,6873,3578,38,6444,
            6441,6877,3072,2499,6438,6877,2235,6468,6468,6877,
            6468,6468,6468,6468,6468,6468,6468,6468,6468,6468,
            6468,6468,6468,6468,6468,6468,6468,6468,6468,6468,
            6468,6468,6468,6468,43,6628,6628,1024,6468,6468,
            6468,6468,6862,6803,6803,263,6803,263,263,263,
            263,6806,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,9202,
            1,1,1,1,1,1,6862,1,6514,6510,
            6776,6661,263,6779,113,6664,481,1,1,6625,
            1,6450,112,6450,259,1,159,6800,1,1,
            1,131,6862,2241,7107,2290,2713,3567,3665,7334,
            7335,7336,6862,6876,6877,254,7156,7235,7236,7150,
            7157,7153,7129,7155,7154,7151,7152,7130,6862,2768,
            7399,6862,6803,6803,263,6803,263,263,263,263,
            263,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,9202,1,
            1,1,1,1,1,6862,2851,6862,6862,6426,
            6423,263,1410,39,963,5693,2235,6900,5670,1111,
            1,6862,5716,5693,1,3518,6800,1,1,1,
            5716,6862,2241,7107,2290,2565,3567,3333,4895,2785,
            2719,2653,2587,2521,2455,2389,2323,2257,2191,381,
            6426,6423,4206,1410,367,963,367,2235,3566,7399,
            6862,6803,6803,263,6803,263,263,263,263,6815,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,9202,1,1,
            1,1,1,1,482,39,39,6862,6900,6712,
            263,6712,2144,92,1,1,6866,1,6721,1321,
            6721,271,260,1,6616,6800,1,1,1,6862,
            3660,2241,7107,2290,6862,3567,494,7334,7335,7336,
            327,6876,6877,253,7156,7235,7236,7150,7157,7153,
            7129,7155,7154,7151,7152,7130,146,6862,7399,6862,
            6803,6803,263,6803,263,263,263,263,6806,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,9202,1,1,1,
            1,1,1,95,39,39,6456,6900,6788,263,
            6788,6862,6426,6423,39,1410,132,963,6900,2235,
            4139,261,1,3665,6800,1,1,1,138,6862,
            2241,7107,2290,6862,3567,6865,1941,431,6518,6518,
            384,318,254,7156,7235,7236,7150,7157,7153,7129,
            7155,7154,7151,7152,7130,4112,4085,7399,6862,6803,
            6803,263,6803,263,263,263,263,6806,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,9202,1,1,1,1,
            1,1,318,6862,6876,6877,6862,2703,263,963,
            1321,2235,6862,6876,6877,157,372,117,1904,6862,
            572,1,5390,6800,1,1,1,398,6868,2241,
            7107,2290,1,3567,3396,3883,6862,6607,6604,7235,
            7236,254,7156,7235,7236,7150,7157,7153,7129,7155,
            7154,7151,7152,7130,148,6862,7399,6862,6803,6803,
            263,6803,263,263,263,263,263,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,9202,1,1,1,1,1,
            1,6867,1321,116,6862,3560,577,263,5390,6862,
            577,573,5670,1111,1,4322,4421,5819,4139,2829,
            1,3434,6800,1,1,1,5142,4702,2241,7107,
            2290,6862,3567,7156,7235,7236,7150,7157,7153,7129,
            7155,7154,7151,7152,7130,381,39,39,3883,6900,
            367,6862,367,4112,4085,7399,6862,6803,6803,263,
            6803,263,263,263,263,263,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,9202,1,1,1,1,1,1,
            6862,6426,6423,6862,6900,2747,263,6862,156,1,
            574,1,5142,4702,6862,1321,6872,4370,6872,1,
            224,6800,1,1,1,2761,6862,2241,7107,2290,
            6862,3567,7156,7235,7236,7150,7157,7153,7129,7155,
            7154,7151,7152,7130,6862,6426,6423,6871,1410,6871,
            6471,224,2235,6862,7399,6862,6803,6803,263,6803,
            263,263,263,263,263,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,9202,1,1,1,1,1,1,1,
            6709,6709,6862,6715,367,263,367,151,399,2617,
            6862,10340,10337,3526,3699,1,6862,2895,1,411,
            6800,1,1,1,194,6868,2241,7107,2290,394,
            3567,6862,1,1,1,1,1,1,1,1,
            6862,1,1,1,1,1,1,1,1,1,
            1,1,1,7399,1,6514,6510,6776,6661,6862,
            6779,347,6664,6872,1604,1,1,1,1,1,
            1,399,1,1,1,1,1,1,1,1,
            1,1,1,1,37,6718,6718,194,6867,367,
            1,6862,6862,7461,6871,4544,399,1,1,1,
            6514,6510,672,1410,5578,5501,5601,2235,6862,6474,
            6501,6507,6480,6483,6495,6492,6498,6489,6486,6477,
            6504,1,6514,6510,653,6661,7255,963,158,2235,
            345,1219,3660,5554,5524,5647,5624,6881,5435,6898,
            645,1037,6883,972,5785,978,6884,6882,642,6878,
            6879,6880,37,6718,6718,6862,120,6862,1528,119,
            4550,345,5025,553,6868,39,39,39,6426,6423,
            5019,1410,5578,5501,5601,2235,6856,643,7161,7159,
            7168,7167,7163,7164,7162,7165,7166,7169,7160,6862,
            4638,4611,4740,4638,4611,6862,6747,6744,6862,10340,
            10337,5554,5524,5647,5624,6881,5435,1716,645,1037,
            6883,972,5785,978,6884,6882,642,6878,6879,6880,
            326,967,967,6281,3434,152,1528,6867,6862,6862,
            6862,6862,3699,6862,2883,6862,6837,6870,6870,6872,
            6869,174,6426,6423,5019,1410,5578,5501,5601,2235,
            6898,643,7161,7159,7168,7167,7163,7164,7162,7165,
            7166,7169,7160,37,6718,6718,6862,6862,6862,6718,
            6871,383,6862,6862,2077,5554,5524,5647,5624,6881,
            5435,147,645,1037,6883,972,5785,978,6884,6882,
            642,6878,6879,6880,6862,6754,6750,1170,796,7411,
            1528,6869,6869,6862,2917,1,4276,39,39,1,
            6514,6510,672,1410,5578,5501,5601,2235,1951,6474,
            6501,6507,6480,6483,6495,6492,6498,6489,6486,6477,
            6504,1321,1,1,406,4139,7340,7354,7300,100,
            404,6818,399,5554,5524,5647,5624,6881,5435,6898,
            645,1037,6883,972,5785,978,6884,6882,642,6878,
            6879,6880,45,6767,6767,1,103,6862,1528,4349,
            4112,4085,328,465,6821,39,39,39,6426,6423,
            5019,1410,5578,5501,5601,2235,6834,643,7161,7159,
            7168,7167,7163,7164,7162,7165,7166,7169,7160,4951,
            1,6873,7257,6862,1431,399,3111,6862,584,356,
            1481,5554,5524,5647,5624,6881,5435,6764,645,1037,
            6883,972,5785,978,6884,6882,642,6878,6879,6880,
            399,6027,6862,6747,6744,6862,1528,6862,6869,1,
            354,457,3129,6785,2767,99,6837,39,6426,6423,
            5019,1410,5578,5501,5601,2235,6834,643,7161,7159,
            7168,7167,7163,7164,7162,7165,7166,7169,7160,1321,
            6862,11342,8963,1,3313,29,636,477,7362,7368,
            7366,5554,5524,5647,5624,6881,5435,6898,645,1037,
            6883,972,5785,978,6884,6882,642,6878,6879,6880,
            1321,37,6718,6718,491,3030,1528,7360,7361,7391,
            7392,3228,7369,6862,1,1,6837,313,3883,6862,
            6797,1,575,6868,6610,6898,6862,7371,337,6429,
            6862,6432,6862,794,424,3569,3878,7372,7198,1760,
            1773,7393,6862,7370,7156,7235,7236,7150,7157,7153,
            7129,7155,7154,7151,7152,7130,6898,583,6435,7382,
            7381,1,7387,7388,7394,7385,7386,7365,7367,7389,
            6862,6809,7363,7364,7390,1321,7375,7376,7377,7373,
            7374,7383,7384,7379,7378,7380,6867,6613,6462,1890,
            7395,39,6426,6423,5019,1410,5578,5501,5601,2235,
            6866,643,7161,7159,7168,7167,7163,7164,7162,7165,
            7166,7169,7160,128,6812,48,3575,6862,48,6877,
            6862,1,6876,4668,1150,5554,5524,5647,5624,6881,
            5435,6809,645,1037,6883,972,5785,978,6884,6882,
            642,6878,6879,6880,1,6514,6510,6706,6661,6649,
            6667,6652,6664,47,6474,6501,6507,6480,6483,6495,
            6492,6498,6489,6486,6477,6504,1,4058,320,6877,
            3660,3518,6876,485,6812,591,3575,6631,6646,6643,
            6658,6655,6679,6640,6862,6694,6703,6673,6697,6637,
            6700,6670,6676,6691,6688,6685,6682,8,29,326,
            463,6862,4004,3931,4511,218,6859,6862,1619,6865,
            6709,6709,39,6426,6423,5019,1410,5578,5501,5601,
            2235,6862,643,7161,7159,7168,7167,7163,7164,7162,
            7165,7166,7169,7160,6862,6862,7181,227,591,3519,
            127,432,73,6862,739,6862,5554,5524,5647,5624,
            6881,5435,1150,645,1037,6883,972,5785,978,6884,
            6882,642,6878,6879,6880,6862,6862,9942,718,461,
            6859,1528,39,6426,6423,5019,1410,5578,5501,5601,
            2235,6862,643,7161,7159,7168,7167,7163,7164,7162,
            7165,7166,7169,7160,4058,1150,6791,3309,486,3385,
            6862,6862,6862,35,6634,3171,5554,5524,5647,5624,
            6881,5435,6850,645,1037,6883,972,5785,978,6884,
            6882,642,6878,6879,6880,6862,6853,6862,6150,4004,
            3931,6862,1021,39,6426,6423,672,1410,5578,5501,
            5601,2235,6862,643,7161,7159,7168,7167,7163,7164,
            7162,7165,7166,7169,7160,4139,344,6862,6862,6862,
            6248,4794,6304,545,2,4179,2511,5554,5524,5647,
            5624,6881,5435,2125,645,1037,6883,972,5785,978,
            6884,6882,642,6878,6879,6880,6862,6862,6862,4963,
            4112,4085,1528,39,6426,6423,672,1410,5578,5501,
            5601,2235,4792,643,7161,7159,7168,7167,7163,7164,
            7162,7165,7166,7169,7160,543,6862,6862,37,6862,
            5274,6862,6862,6862,2222,6862,6862,5554,5524,5647,
            5624,6881,5435,5922,645,1037,6883,972,5785,978,
            6884,6882,642,6878,6879,6880,6862,6862,6862,6862,
            6862,6862,1528,39,6426,6423,5019,1410,5578,5501,
            5601,2235,6862,643,7161,7159,7168,7167,7163,7164,
            7162,7165,7166,7169,7160,6862,547,6862,6862,6862,
            6862,6862,6862,6862,6862,6274,2125,5554,5524,5647,
            5624,6881,5435,4854,645,1037,6883,972,5785,978,
            6884,6882,642,6878,6879,6880,6862,6862,6862,6862,
            6862,6862,1528,39,6426,6423,5954,1410,5578,5501,
            5601,2235,4916,643,7161,7159,7168,7167,7163,7164,
            7162,7165,7166,7169,7160,6862,6862,6862,6862,6862,
            6862,6862,6862,6862,6862,2983,901,5554,5524,5647,
            5624,6881,5435,6862,645,1037,6883,972,5785,978,
            6884,6882,642,6878,6879,6880,39,6426,6423,5019,
            1410,5578,5501,5601,2235,6862,643,7161,7159,7168,
            7167,7163,7164,7162,7165,7166,7169,7160,6862,6862,
            6862,6862,6862,6862,6862,6862,6862,6862,6862,6862,
            5554,5524,5647,5624,6881,5435,6862,645,1037,6883,
            972,5785,978,6884,6882,642,6878,6879,6880,39,
            6426,6423,672,1410,5578,5501,5601,2235,6862,643,
            7161,7159,7168,7167,7163,7164,7162,7165,7166,7169,
            7160,6862,6862,6862,6862,6862,6862,6862,6862,6862,
            6862,6862,6862,5554,5524,5647,5624,6881,5435,6862,
            645,1037,6883,972,5785,978,6884,6882,642,6878,
            6879,6880,39,6426,6423,672,1410,5578,5501,5601,
            2235,6862,643,7161,7159,7168,7167,7163,7164,7162,
            7165,7166,7169,7160,6862,6862,6862,6862,6862,6862,
            6862,6862,6862,6862,6862,6862,5554,5524,5647,5624,
            6881,5435,6862,645,1037,6883,972,5785,978,6884,
            6882,642,6878,6879,6880,39,6426,6423,5019,1410,
            5578,5501,5601,2235,6862,643,7161,7159,7168,7167,
            7163,7164,7162,7165,7166,7169,7160,1,6862,6862,
            6862,6862,6862,6862,6862,6862,196,6862,6862,5554,
            5524,5647,5624,6881,5435,6862,645,1037,6883,972,
            5785,978,6884,6882,642,6878,6879,6880,6862,6426,
            6423,6862,6900,6862,6862,6862,6862,6862,882,7161,
            7159,7168,7167,7163,7164,7162,7165,7166,7169,7160,
            7156,7235,7236,7150,7157,7153,7129,7155,7154,7151,
            7152,7130,6862,6862,6862,6862,6862,6862,6862,196,
            6862,6862,6862,6862,6862,6862,6862,6862,275,6597,
            6593,7297,6601,6862,1198,7298,7299,6862,882,6584,
            6590,6563,6566,6578,6575,6581,6572,6569,6560,6587,
            6539,6533,6530,6557,6536,6548,6527,6542,6545,6554,
            6551,6524,6862,6862,6862,6862,6862,6862,6862,6862,
            6862,6862,6862,6862,6862,6862,6862,6862,6876,6877,
            6862,7297,6862,6862,1198,7298,7299,1571,7161,7159,
            7168,7167,7163,7164,7162,7165,7166,7169,7160,7156,
            7235,7236,7150,7157,7153,7129,7155,7154,7151,7152,
            7130,6862,6862,6862,6862,6862,6862,6862,6862,6862,
            6862,6862,6862,6862,6862,6862,275,6727,6724,6862,
            7297,6862,6862,1198,7298,7299,1571,6584,6590,6563,
            6566,6578,6575,6581,6572,6569,6560,6587,6539,6533,
            6530,6557,6536,6548,6527,6542,6545,6554,6551,6524,
            6862,6862,6862,29,424,424,6622,424,6622,424,
            6622,424,6622,6862,75,6862,6862,704,6862,7297,
            6862,6862,1198,7298,7299,424,424,424,424,424,
            424,424,424,424,424,424,424,6862,1,6514,
            6510,4206,6661,6622,963,1,2235,6610,3883,6862,
            6924,6925,6862,6862,377,6862,6862,6429,6862,6862,
            6862,6862,6862,6622,32,425,425,6619,425,6619,
            425,6619,425,6619,3890,6622,6862,6862,6862,6862,
            6862,6862,6862,6862,6862,6862,425,425,425,425,
            425,425,425,425,425,425,425,425,1321,6862,
            6862,6862,6862,6862,6619,1321,6862,6862,6862,377,
            6613,6862,6862,377,6862,6862,6862,377,6862,6862,
            6862,6862,6862,6862,6619,6862,571,6862,6862,6862,
            6862,1060,6862,2552,6862,6862,6619,7161,7159,7168,
            7167,7163,7164,7162,7165,7166,7169,7160,7156,7235,
            7236,7150,7157,7153,7129,7155,7154,7151,7152,7130,
            37,6876,6876,6876,6876,6876,6862,6876,6862,6862,
            6862,6862,6862,6862,6862,6862,6862,6862,6862,6862,
            6862,6862,6876,6876,6876,6876,6876,6876,6876,6876,
            6876,6876,6876,6876,6862,6862,6862,6862,6862,6862,
            6862,6862,6862,6862,6862,6862,6862,6862,6862,6862,
            6862,6862,6862,6862,6862,6862,6862,6862,6862,6862,
            6876,6862,6862,6862,6876,6862,6862,6862,6876
        };
    };
    public final static char termAction[] = TermAction.termAction;
    @Override
    public final int termAction(int index) { return termAction[index]; }

    public interface Asb {
        public final static char asb[] = {0,
            790,15,671,9,831,880,880,880,880,536,
            831,562,562,468,562,262,655,264,672,672,
            672,672,672,672,672,672,672,564,570,575,
            572,579,577,584,582,586,585,587,331,588,
            671,655,192,192,192,192,710,17,165,165,
            559,192,328,105,562,562,165,710,105,105,
            96,655,947,191,1124,538,1005,655,562,564,
            763,763,17,671,672,672,672,672,672,672,
            672,672,672,672,672,672,672,672,672,672,
            672,672,672,671,671,671,671,671,671,671,
            671,671,671,671,671,672,105,105,1070,1070,
            1070,1070,1126,105,165,165,534,994,1005,6,
            1005,1,1005,282,1005,989,536,710,328,328,
            165,880,672,534,288,908,898,897,432,1012,
            1012,536,264,328,191,671,708,1123,105,707,
            709,707,105,328,572,572,570,570,570,577,
            577,577,577,575,575,582,579,579,585,584,
            586,1082,587,831,831,831,831,710,710,1070,
            193,530,655,1047,1045,1052,1050,1054,1053,1055,
            1056,1069,1070,559,710,380,383,3,765,4,
            536,710,710,1126,1070,96,328,603,105,910,
            912,710,1124,672,192,568,61,105,538,710,
            710,709,1124,671,671,671,671,671,831,831,
            507,518,518,518,518,502,536,713,672,672,
            672,672,672,672,672,672,672,671,671,671,
            671,671,671,671,671,671,671,671,671,672,
            655,381,557,555,383,710,720,160,718,1126,
            6,540,710,1126,710,105,902,890,901,912,
            1126,708,105,568,534,1123,538,710,708,105,
            105,105,105,17,17,710,672,1045,1045,1045,
            1050,1047,1047,1053,1052,1054,1082,1055,381,555,
            543,710,383,1082,4,880,1128,147,1072,383,
            720,719,720,720,1126,540,540,710,710,612,
            671,899,899,269,269,710,906,534,840,105,
            710,568,569,568,671,61,152,564,538,105,
            105,1126,785,671,555,555,1124,6,6,1070,
            880,707,622,1074,704,831,720,720,720,720,
            710,540,542,835,542,612,671,671,912,710,
            1124,105,910,890,612,443,568,17,672,328,
            152,710,555,554,708,724,6,109,399,708,
            720,720,704,608,672,1082,277,873,710,534,
            720,720,546,542,543,672,710,777,912,612,
            569,105,328,555,609,724,724,59,1084,372,
            831,4,146,399,708,720,6,536,1074,672,
            672,1123,704,882,427,547,710,543,777,105,
            777,543,724,724,108,372,59,886,536,1069,
            880,154,154,609,6,635,882,710,831,546,
            710,536,536,710,831,770,777,543,109,724,
            609,276,608,105,536,710,399,109,399,1068,
            1068,833,636,536,710,17,710,710,710,913,
            770,724,671,225,704,609,710,710,399,192,
            192,833,635,1082,672,1082,609,634,831,831,
            831,636,831,710,339,609,609,710,6,105,
            710,710,104,772,543,105,543,6,710,609,
            1069,627,831,627,636,1082,636,655,655,653,
            634,655,609,609,783,633,192,772,543,225,
            609,222,840,636,105,704,105,653,372,831,
            105,833,225,154,105,105,456,636,783,636,
            609,372,671,636,633,542,1068,6,6,979,
            671,634,17,609,105,607,224,707,636,105,
            609,607,607,636
        };
    };
    public final static char asb[] = Asb.asb;
    @Override
    public final int asb(int index) { return asb[index]; }

    public interface Asr {
        public final static byte asr[] = {0,
            55,4,71,1,2,69,9,0,9,71,
            118,72,40,68,120,0,9,72,11,12,
            41,66,13,42,43,14,15,16,67,8,
            44,17,18,45,46,47,59,48,49,10,
            19,20,21,50,51,52,1,2,3,36,
            37,7,5,34,35,6,39,4,38,0,
            98,91,34,35,99,100,86,87,54,89,
            90,92,93,94,95,96,101,102,71,97,
            70,103,104,105,106,107,108,109,110,111,
            112,118,73,40,120,64,1,2,7,5,
            4,3,60,68,72,9,0,69,53,23,
            13,56,26,14,28,29,15,16,30,31,
            17,18,32,57,33,58,19,22,20,24,
            21,12,11,25,9,3,7,5,40,63,
            65,88,27,62,55,61,8,1,2,4,
            10,6,0,64,70,68,1,2,0,4,
            9,71,69,0,41,66,42,43,67,8,
            44,45,46,47,59,48,49,50,51,52,
            38,36,37,7,5,34,35,6,39,64,
            3,4,10,1,2,56,57,58,12,21,
            11,17,15,16,18,19,14,13,20,25,
            31,32,27,30,29,22,26,23,24,28,
            33,53,0,73,59,36,37,7,5,34,
            35,39,45,3,4,50,51,52,38,48,
            43,47,12,21,11,17,15,16,18,19,
            14,13,20,10,42,46,44,41,49,69,
            9,8,6,1,2,67,66,0,74,64,
            71,97,72,69,60,3,9,68,40,70,
            0,4,9,69,1,2,0,66,67,3,
            10,42,46,44,41,49,12,21,11,17,
            15,16,18,19,14,13,20,50,51,52,
            38,48,43,47,6,8,4,36,37,7,
            5,34,35,39,45,1,2,118,9,0,
            64,71,97,68,118,72,73,120,11,12,
            41,66,13,42,43,14,15,16,67,44,
            17,18,45,46,47,59,48,49,10,19,
            20,21,50,51,52,38,36,37,34,35,
            39,9,40,6,8,1,2,4,3,7,
            5,0,88,61,8,114,115,116,63,9,
            3,7,5,6,71,73,40,62,25,11,
            12,53,23,13,56,26,27,14,28,29,
            15,16,30,31,17,18,32,57,55,33,
            10,58,19,20,24,21,1,2,4,22,
            0,11,12,13,14,15,16,17,18,19,
            20,21,25,23,26,27,28,29,30,31,
            32,33,22,24,40,9,72,8,1,2,
            60,3,7,5,6,4,0,67,66,34,
            35,99,100,94,95,6,39,70,54,106,
            107,103,104,105,111,110,112,87,86,108,
            109,92,93,89,90,96,101,36,37,91,
            117,10,56,53,57,58,12,21,11,17,
            15,16,18,19,14,13,20,25,31,32,
            27,30,29,22,26,23,24,28,33,64,
            68,3,60,7,5,1,2,4,0,1,
            2,68,73,9,0,22,1,2,4,114,
            115,116,0,59,23,24,8,6,1,2,
            4,74,69,119,117,36,37,60,3,98,
            91,5,99,100,34,35,87,86,54,89,
            90,92,93,7,94,95,96,64,97,72,
            120,70,103,104,105,106,107,108,109,110,
            111,112,71,118,101,102,73,68,40,9,
            0,23,59,24,9,64,97,70,68,72,
            0,9,71,69,74,0,88,114,115,116,
            55,71,113,121,73,62,74,63,61,65,
            76,78,84,82,75,80,81,83,85,69,
            77,79,40,9,25,53,23,56,26,27,
            28,29,30,31,32,57,33,58,22,24,
            59,66,67,10,42,46,44,41,49,12,
            21,11,17,15,16,18,19,14,13,20,
            50,51,52,38,48,43,47,36,37,34,
            35,39,45,7,5,3,4,8,6,1,
            2,0,54,64,89,90,0,4,54,9,
            71,69,0,65,25,11,12,53,23,13,
            56,26,88,27,14,28,29,15,16,30,
            61,31,17,18,32,57,33,10,58,19,
            63,22,20,24,21,9,3,7,5,73,
            40,62,8,6,55,1,2,4,0,23,
            24,74,3,71,40,69,59,9,64,97,
            68,72,70,0,72,9,87,86,0,11,
            12,41,66,13,42,43,14,15,16,67,
            8,44,17,18,45,46,47,59,48,49,
            10,19,20,21,50,51,52,38,1,2,
            36,37,7,5,34,35,6,39,4,62,
            3,0,113,0,9,68,73,70,0,25,
            11,12,53,23,13,56,26,27,14,28,
            29,15,16,30,31,17,18,32,57,33,
            10,58,19,22,20,24,21,1,2,4,
            97,0,71,9,60,3,70,68,40,54,
            0,9,69,68,0,9,69,70,0,7,
            5,8,6,4,1,2,3,60,64,70,
            68,9,72,97,0,6,8,3,60,5,
            7,97,25,11,12,53,23,13,56,26,
            27,14,28,29,15,16,30,31,17,18,
            32,57,33,10,58,19,22,20,24,21,
            1,2,4,72,9,0,66,67,36,37,
            34,35,39,45,50,51,52,38,48,43,
            47,12,21,11,17,15,16,18,19,14,
            13,20,10,42,46,44,41,49,7,5,
            3,60,8,6,4,1,2,0,10,56,
            53,57,58,12,21,11,17,15,16,18,
            19,14,13,20,74,71,97,118,73,69,
            120,8,31,32,33,22,24,1,2,30,
            29,28,27,26,6,4,23,25,119,98,
            117,91,36,37,34,35,99,100,9,60,
            3,5,72,40,87,86,54,89,90,92,
            93,7,94,95,96,101,102,103,104,105,
            106,107,108,109,110,111,112,70,68,64,
            0,40,9,3,8,6,7,5,4,1,
            2,71,0,53,23,13,56,26,14,28,
            29,15,16,30,31,17,18,32,57,33,
            10,58,19,22,20,24,21,12,11,25,
            9,3,7,40,63,61,65,88,27,62,
            54,4,5,8,6,1,2,55,0
        };
    };
    public final static byte asr[] = Asr.asr;
    @Override
    public final int asr(int index) { return asr[index]; }

    public interface Nasb {
        public final static char nasb[] = {0,
            160,12,82,12,12,12,12,12,12,86,
            12,12,12,125,12,238,26,157,82,82,
            257,82,82,82,82,82,82,12,12,12,
            12,12,12,12,12,12,12,12,82,12,
            82,26,218,218,218,218,157,16,180,180,
            93,5,108,230,12,12,180,261,230,230,
            164,1,82,77,53,12,12,26,12,12,
            68,68,16,27,82,82,82,82,82,82,
            82,82,82,82,82,82,82,82,82,82,
            82,82,82,82,82,82,82,82,82,82,
            82,82,82,82,27,82,230,230,12,12,
            12,12,120,230,43,43,187,275,276,226,
            276,13,276,88,276,269,10,157,108,108,
            43,12,82,187,103,163,19,19,12,12,
            12,10,157,108,218,113,238,99,230,237,
            157,237,230,108,12,12,12,12,12,12,
            12,12,12,12,12,12,12,12,12,12,
            12,12,12,12,12,12,12,192,11,12,
            250,164,21,12,12,12,12,12,12,12,
            12,12,12,197,157,12,180,191,86,96,
            86,157,11,12,12,195,108,12,230,303,
            180,157,53,82,218,180,34,230,12,11,
            157,110,53,82,27,27,27,27,12,12,
            275,276,276,276,276,286,10,12,82,82,
            82,82,82,82,82,82,82,82,82,82,
            82,82,82,82,82,82,82,82,27,82,
            43,189,189,189,204,192,41,41,12,242,
            226,180,242,52,192,230,12,173,12,306,
            51,192,230,91,197,99,12,261,192,230,
            230,230,230,16,16,157,82,12,12,12,
            12,12,12,12,12,12,12,12,12,180,
            145,157,170,12,74,12,12,116,278,204,
            41,41,180,180,52,180,262,11,192,180,
            82,12,12,19,19,157,172,187,306,230,
            192,180,59,12,27,197,111,12,12,230,
            230,52,230,82,189,137,53,226,130,12,
            12,86,180,182,175,12,180,180,57,57,
            192,262,55,12,12,137,82,82,180,11,
            53,230,303,232,180,12,91,16,82,108,
            111,192,180,137,238,180,226,294,180,242,
            180,123,234,170,82,12,66,12,157,187,
            57,57,151,55,145,82,262,180,306,137,
            59,230,108,137,170,264,180,12,294,279,
            12,129,116,306,238,123,132,37,175,82,
            82,139,234,12,86,142,242,145,118,230,
            180,145,294,264,225,182,12,12,86,12,
            12,61,61,170,132,144,12,242,12,30,
            242,86,86,11,12,180,118,145,294,180,
            170,135,12,230,86,242,306,294,180,12,
            12,180,211,37,11,16,11,242,242,228,
            137,264,113,80,175,170,242,75,306,218,
            218,149,221,12,82,12,170,12,12,12,
            12,222,12,262,168,170,170,262,63,230,
            11,11,230,180,145,230,180,226,75,170,
            12,155,12,12,222,12,222,299,299,245,
            12,299,170,170,12,180,218,118,145,180,
            170,12,218,222,230,175,230,217,180,12,
            230,149,80,61,230,230,180,222,12,222,
            170,175,27,222,155,145,12,63,63,173,
            82,12,201,170,230,147,79,237,222,230,
            170,147,12,222
        };
    };
    public final static char nasb[] = Nasb.nasb;
    @Override
    public final int nasb(int index) { return nasb[index]; }

    public interface Nasr {
        public final static char nasr[] = {0,
            3,13,10,9,137,136,113,135,134,4,
            2,0,166,205,0,5,105,0,80,0,
            13,2,9,10,4,52,5,36,0,4,
            115,182,0,5,194,0,186,4,185,0,
            122,0,4,10,9,2,13,127,5,0,
            154,2,75,0,167,0,123,0,159,0,
            121,0,42,66,0,208,0,4,2,9,
            10,157,0,140,117,0,192,0,81,148,
            42,10,9,2,13,4,0,166,200,0,
            161,0,5,212,0,42,1,0,75,156,
            155,0,13,2,9,10,4,94,0,2,
            131,0,5,28,0,170,0,144,0,154,
            75,0,173,0,5,52,213,0,1,140,
            0,42,174,0,201,0,51,0,75,54,
            0,210,0,5,81,0,176,0,175,0,
            4,115,209,0,129,0,2,44,0,5,
            191,0,30,100,101,5,0,5,36,39,
            0,30,101,100,78,4,2,9,10,5,
            0,5,10,9,2,78,4,98,54,0,
            44,2,3,0,101,100,54,4,68,0,
            5,195,0,5,50,93,115,48,4,0,
            5,50,42,36,196,0,197,5,52,0,
            81,36,50,82,5,42,0,52,5,30,
            0,101,100,54,78,68,4,10,9,2,
            0,2,67,0,36,5,27,198,0,137,
            214,136,113,135,134,0,4,10,9,13,
            3,1,0,132,5,50,93,0,2,4,
            113,110,111,112,13,69,0,39,4,2,
            9,10,5,172,0,113,69,13,110,111,
            112,190,0,5,50,93,95,0,5,52,
            116,0,54,4,98,27,5,0
        };
    };
    public final static char nasr[] = Nasr.nasr;
    @Override
    public final int nasr(int index) { return nasr[index]; }

    public interface TerminalIndex {
        public final static char terminalIndex[] = {0,
            113,114,2,31,10,13,9,79,115,100,
            48,52,60,68,74,75,86,87,102,105,
            107,104,54,106,47,64,66,70,73,76,
            83,89,98,11,12,7,8,112,14,120,
            55,61,67,84,88,90,94,97,99,109,
            110,111,53,19,93,63,91,101,95,1,
            77,122,103,20,46,58,78,44,121,33,
            30,118,119,96,108,49,50,56,57,59,
            69,71,72,85,92,17,18,65,21,22,
            6,23,24,25,26,27,32,4,15,16,
            28,29,34,35,36,37,38,39,40,41,
            42,43,51,80,81,82,5,117,3,123,
            62,116
        };
    };
    public final static char terminalIndex[] = TerminalIndex.terminalIndex;
    @Override
    public final int terminalIndex(int index) { return terminalIndex[index]; }

    public interface NonterminalIndex {
        public final static char nonterminalIndex[] = {0,
            130,135,136,0,0,134,0,0,237,243,
            133,0,143,0,132,0,0,142,148,0,
            0,149,158,159,160,161,188,151,0,126,
            162,141,163,164,165,131,166,167,128,168,
            0,129,138,137,170,169,171,185,0,0,
            195,152,172,0,173,0,0,0,0,0,
            174,175,176,0,177,180,0,155,194,0,
            0,0,212,0,0,145,209,213,0,214,
            127,179,0,0,0,0,0,0,183,0,
            0,0,0,125,186,0,0,210,216,217,
            218,0,220,157,0,146,0,0,215,197,
            198,199,201,227,228,182,204,0,0,219,
            0,0,0,0,248,0,251,0,252,0,
            147,187,189,190,191,192,196,200,203,0,
            206,0,207,0,222,225,0,0,0,246,
            0,247,0,0,139,140,144,0,0,154,
            156,0,178,0,193,0,0,0,202,0,
            205,211,0,223,224,0,0,229,232,0,
            234,236,0,240,241,242,245,0,0,249,
            124,0,150,153,0,181,0,184,0,0,
            208,221,226,0,0,230,231,233,235,0,
            238,239,244,250,253,254,0,0,0,0,
            0,0,0,0,0
        };
    };
    public final static char nonterminalIndex[] = NonterminalIndex.nonterminalIndex;
    @Override
    public final int nonterminalIndex(int index) { return nonterminalIndex[index]; }

    public interface ScopePrefix {
        public final static char scopePrefix[] = {
            172,324,608,627,317,332,559,575,586,597,
            372,280,294,311,344,55,305,392,430,180,
            616,502,20,33,64,84,93,98,103,143,
            208,339,350,20,467,157,286,300,530,40,
            157,382,20,635,40,230,259,1,14,27,
            74,89,119,27,361,365,448,495,524,551,
            555,645,649,653,110,7,110,410,426,439,
            460,479,543,129,129,245,439,566,582,593,
            604,220,513,69,69,169,235,238,69,254,
            275,238,238,69,369,492,499,169,69,668,
            123,355,414,454,486,472,69,355,401,190,
            117,452,657,664,657,664,78,420,150,117,
            117,264
        };
    };
    public final static char scopePrefix[] = ScopePrefix.scopePrefix;
    @Override
    public final int scopePrefix(int index) { return scopePrefix[index]; }

    public interface ScopeSuffix {
        public final static char scopeSuffix[] = {
            18,148,5,5,148,148,5,5,5,5,
            379,148,108,148,25,61,291,398,436,186,
            80,508,25,38,38,38,72,72,108,148,
            213,31,31,25,5,162,291,114,535,51,
            165,387,622,640,45,224,224,5,18,31,
            5,72,108,31,108,108,148,257,5,5,
            5,5,5,257,666,11,114,379,379,379,
            464,483,535,133,138,249,443,570,570,570,
            570,224,517,72,72,5,5,241,243,257,
            5,278,278,243,108,5,257,5,528,5,
            126,358,417,457,489,475,547,538,404,193,
            108,108,659,659,661,661,80,422,152,215,
            200,266
        };
    };
    public final static char scopeSuffix[] = ScopeSuffix.scopeSuffix;
    @Override
    public final int scopeSuffix(int index) { return scopeSuffix[index]; }

    public interface ScopeLhs {
        public final static char scopeLhs[] = {
            48,112,18,18,92,112,18,18,18,18,
            85,97,49,92,111,90,59,85,84,48,
            18,20,190,3,7,8,182,182,178,110,
            48,111,111,138,45,147,60,49,157,151,
            147,85,18,18,151,102,72,153,88,190,
            185,182,178,138,199,57,66,161,19,18,
            18,18,18,18,12,129,178,85,84,84,
            64,41,157,114,114,68,84,18,18,18,
            18,102,20,186,182,201,100,109,74,80,
            73,172,89,138,86,162,161,192,157,17,
            178,138,116,83,22,45,157,157,85,48,
            178,79,155,44,155,44,185,116,110,48,
            48,72
        };
    };
    public final static char scopeLhs[] = ScopeLhs.scopeLhs;
    @Override
    public final int scopeLhs(int index) { return scopeLhs[index]; }

    public interface ScopeLa {
        public final static byte scopeLa[] = {
            113,73,72,72,73,73,72,72,72,72,
            72,73,40,73,1,64,1,72,121,69,
            3,72,1,64,64,64,1,1,40,73,
            69,1,1,1,72,73,1,1,4,64,
            68,40,1,1,64,72,72,72,113,1,
            72,1,40,1,40,40,73,118,72,72,
            72,72,72,118,1,72,1,72,72,72,
            71,71,4,1,1,5,72,64,64,64,
            64,72,3,1,1,72,72,3,1,118,
            72,1,1,1,40,72,118,72,6,72,
            1,55,70,71,72,64,1,55,75,74,
            40,40,4,4,4,4,3,1,69,1,
            1,3
        };
    };
    public final static byte scopeLa[] = ScopeLa.scopeLa;
    @Override
    public final int scopeLa(int index) { return scopeLa[index]; }

    public interface ScopeStateSet {
        public final static char scopeStateSet[] = {
            85,183,284,284,107,183,284,284,284,284,
            95,109,85,107,183,107,87,95,95,85,
            284,284,118,214,260,260,54,54,82,183,
            85,183,183,185,140,371,87,85,165,50,
            371,95,284,284,50,174,66,26,95,118,
            30,54,82,185,22,87,33,63,284,284,
            284,284,284,284,264,6,82,95,95,95,
            148,344,165,183,183,124,95,284,284,284,
            284,174,284,30,54,24,174,176,66,170,
            66,60,71,185,95,57,63,168,165,284,
            82,185,1,95,285,140,165,165,95,85,
            82,11,121,189,121,189,30,1,183,85,
            85,66
        };
    };
    public final static char scopeStateSet[] = ScopeStateSet.scopeStateSet;
    @Override
    public final int scopeStateSet(int index) { return scopeStateSet[index]; }

    public interface ScopeRhs {
        public final static char scopeRhs[] = {0,
            338,3,59,0,126,0,337,3,113,0,
            126,180,0,127,188,74,0,224,0,197,
            166,126,10,0,136,0,166,126,10,0,
            135,0,271,127,54,124,0,20,0,309,
            127,54,55,0,20,53,0,33,132,0,
            20,53,0,0,309,127,54,55,215,0,
            20,186,0,271,127,54,132,0,189,126,
            0,141,0,227,3,308,0,308,0,2,
            0,126,0,271,127,54,131,0,189,126,
            237,0,189,126,22,237,0,189,126,332,
            22,0,128,197,166,126,0,128,0,197,
            166,126,0,134,128,0,172,0,328,127,
            172,0,127,172,0,230,128,0,166,327,
            235,0,136,0,0,0,0,135,0,0,
            0,0,326,127,164,236,0,127,0,236,
            0,129,0,0,127,0,325,127,164,270,
            0,127,0,0,44,127,0,0,150,3,
            0,127,296,295,127,74,294,172,0,295,
            127,74,294,172,0,223,0,224,0,294,
            172,0,96,0,0,223,0,224,0,211,
            96,0,0,223,0,224,0,295,127,294,
            172,0,223,0,211,0,0,223,0,240,
            127,3,0,126,0,0,0,0,0,240,
            127,3,222,0,231,3,0,220,127,0,
            216,0,146,0,176,166,126,0,10,0,
            0,0,0,226,60,0,125,0,240,127,
            3,195,0,195,0,2,0,0,126,0,
            0,0,0,0,211,3,0,209,0,252,
            127,164,38,27,0,189,126,61,63,0,
            204,128,0,128,189,126,292,63,0,189,
            126,292,63,0,189,126,70,123,61,0,
            252,127,164,262,61,0,252,127,164,262,
            239,61,0,289,290,127,164,123,322,56,
            0,289,290,127,164,322,56,0,189,126,
            288,56,0,197,189,126,288,235,0,189,
            126,288,235,0,166,126,0,93,136,0,
            286,127,149,0,286,127,172,0,158,84,
            0,317,161,319,320,3,81,0,126,179,
            0,319,320,3,81,0,128,0,126,179,
            0,158,3,75,204,80,0,126,128,0,
            204,80,0,108,2,131,126,128,0,238,
            3,75,0,211,174,0,33,169,0,174,
            0,183,33,169,0,238,3,85,0,204,
            152,238,3,83,0,62,179,0,238,3,
            83,0,126,179,62,179,0,318,127,164,
            0,158,0,226,77,0,30,179,0,158,
            102,185,0,30,177,0,148,64,167,3,
            0,167,3,0,20,161,126,0,158,102,
            162,0,30,169,0,198,3,0,126,149,
            0,227,3,0,226,60,283,0,158,60,
            0,198,3,314,67,126,0,126,0,0,
            0,0,314,67,126,0,2,145,126,0,
            0,0,0,198,3,45,0,147,0,125,
            55,166,126,0,31,147,0,93,136,31,
            147,0,228,189,126,0,146,31,147,0,
            198,3,49,0,158,3,49,0,158,3,
            64,198,54,41,0,198,54,41,0,20,
            2,131,126,0,158,3,64,198,54,44,
            0,198,54,44,0,158,3,64,198,54,
            46,0,198,54,46,0,158,3,64,198,
            54,42,0,198,54,42,0,227,3,125,
            197,166,126,10,0,125,197,166,126,10,
            0,136,2,0,126,0,227,3,124,276,
            166,126,10,0,276,166,126,10,0,135,
            2,0,126,0,227,3,135,0,227,3,
            140,0,158,60,140,0,278,0,31,0,
            31,139,0,165,0,134,0,158,3,0
        };
    };
    public final static char scopeRhs[] = ScopeRhs.scopeRhs;
    @Override
    public final int scopeRhs(int index) { return scopeRhs[index]; }

    public interface ScopeState {
        public final static char scopeState[] = {0,
            4466,6304,6248,6150,0,3260,2778,2973,2704,0,
            5301,5239,5172,5040,4978,4916,4854,4792,4730,4509,
            4447,4794,0,2313,0,1983,1936,1654,0,2511,
            739,0,5301,5239,2377,1613,5172,5040,4978,4916,
            4854,4792,980,4730,4509,4447,2572,2309,0,4674,
            4930,3461,0,718,2767,0,1038,914,0,750,
            6008,0,1312,1202,0,5985,750,5415,4682,6008,
            4598,5129,2420,2222,3838,796,653,4220,4206,4166,
            0,5192,4369,0,5192,4369,5833,6201,6140,5820,
            6125,6051,5807,6027,5301,5239,5172,5040,4978,4916,
            4854,4792,4730,4509,4447,0,5192,4369,5833,6201,
            6140,5820,6125,6051,5807,6027,0,6021,5363,0,
            2284,1320,0,3838,5985,4737,5415,4682,6219,4220,
            2957,3905,810,6187,4312,2301,2959,648,0,3333,
            3434,3617,3526,3851,3811,3699,672,2917,994,2851,
            2785,2719,2653,2587,2521,2455,2389,2323,2257,2191,
            926,834,766,0,2552,1060,0,1111,0,2291,
            1175,1048,649,4682,4312,4598,4206,4166,3889,3883,
            3118,0,6021,5363,5932,600,4250,0,5829,5808,
            5428,5312,5180,5166,5007,4945,4883,4862,6267,6161,
            4800,4731,6094,5842,5330,4270,5173,4476,4455,4448,
            4350,3328,0,1857,1810,5829,5808,5428,1763,1669,
            5312,1042,5180,5166,5007,4945,4883,2485,2186,2092,
            2045,4862,1998,6267,6161,1951,1904,1716,1619,4800,
            4731,1523,1427,6094,3125,5842,2139,5330,4270,5173,
            1348,4476,4455,4448,5932,963,4250,4350,3328,2815,
            2749,2683,1410,901,4598,5129,2420,2222,3838,5985,
            796,750,5415,4682,653,4220,4206,6008,4166,2617,
            1024,2552,1060,5785,2917,4179,994,3333,2851,2785,
            2719,2653,2587,2521,2455,2389,2323,2257,2191,3434,
            3617,3526,3851,3811,3699,4139,4112,4085,5762,672,
            5739,926,834,766,1079,3396,3582,3490,3779,3747,
            3665,4421,4322,4058,4031,4004,3931,5390,5142,4702,
            4638,4611,5716,5693,5670,5647,5624,5601,5578,5554,
            5524,5501,5435,2983,3270,3228,3171,3129,3072,3030,
            1481,1431,1368,2144,1321,2097,2050,2003,1956,1909,
            1862,1815,1768,1721,1674,1627,600,1577,1528,1273,
            1170,1123,1219,0
        };
    };
    public final static char scopeState[] = ScopeState.scopeState;
    @Override
    public final int scopeState(int index) { return scopeState[index]; }

    public interface InSymb {
        public final static char inSymb[] = {0,
            0,313,127,285,49,41,44,46,42,10,
            135,124,131,8,132,4,3,126,45,39,
            6,35,34,5,7,37,36,140,145,147,
            146,153,148,156,155,159,157,160,59,162,
            68,3,54,54,54,54,126,3,54,54,
            174,127,60,3,66,67,54,6,198,158,
            174,127,66,67,166,165,124,3,123,125,
            117,119,3,60,91,98,35,34,100,99,
            5,90,89,64,54,86,87,7,93,92,
            95,94,96,112,111,110,109,108,107,106,
            105,104,103,70,102,101,198,158,198,198,
            198,198,166,227,127,127,127,255,256,236,
            257,235,258,56,287,259,10,126,60,60,
            127,124,152,127,60,3,223,222,135,125,
            124,10,126,60,314,3,197,4,198,55,
            126,55,227,158,146,146,145,145,145,148,
            148,148,148,147,147,155,153,153,157,156,
            159,158,160,64,64,64,64,197,276,271,
            127,249,3,167,148,175,169,183,177,184,
            185,274,271,220,126,176,164,327,288,322,
            288,126,189,166,271,220,226,162,231,127,
            3,126,166,216,3,315,174,150,278,197,
            126,189,166,71,3,3,3,3,125,124,
            255,256,257,258,336,259,10,167,90,89,
            54,7,93,92,95,94,96,112,111,110,
            109,108,107,106,105,104,103,70,102,101,
            68,166,7,5,127,166,243,125,124,126,
            123,164,126,166,55,240,241,149,242,127,
            166,55,198,127,127,4,228,6,55,158,
            158,158,158,3,3,126,64,148,148,148,
            169,167,167,177,175,183,158,184,176,176,
            326,126,170,237,61,55,215,63,172,329,
            125,124,244,244,189,164,127,189,197,152,
            70,231,211,200,195,126,3,127,68,240,
            197,152,280,283,60,190,4,123,125,227,
            227,166,148,71,5,127,166,262,239,54,
            55,292,294,127,3,195,244,244,127,127,
            197,127,290,123,291,127,70,70,3,189,
            166,211,127,220,152,125,127,3,60,158,
            4,197,176,173,197,164,262,64,54,126,
            74,127,220,328,71,303,211,124,126,127,
            127,127,71,290,289,70,68,229,127,127,
            280,227,226,127,128,127,164,27,55,172,
            65,61,63,127,189,127,295,71,68,71,
            70,166,220,331,237,22,126,289,127,240,
            229,252,254,127,38,127,3,123,61,309,
            55,10,53,128,295,164,307,126,308,68,
            126,22,332,189,59,152,127,252,127,164,
            286,265,293,38,70,126,68,64,54,243,
            243,296,127,68,189,3,189,126,126,3,
            127,127,3,70,68,152,126,189,127,70,
            70,127,318,79,77,1,158,9,85,83,
            81,80,75,82,84,78,76,61,74,227,
            189,189,338,229,252,150,164,270,189,239,
            309,297,113,9,71,226,71,3,3,3,
            204,3,123,158,123,188,68,127,127,164,
            239,64,3,71,238,174,238,320,149,75,
            238,127,127,53,97,337,174,152,211,152,
            319,127,3,152,297,325,243,152,152,127,
            70,204,161,286,158,203,68,70,121,317,
            152,203,9,152
        };
    };
    public final static char inSymb[] = InSymb.inSymb;
    @Override
    public final int inSymb(int index) { return inSymb[index]; }

    public interface Name {
        public final static String name[] = {
            "",
            "[",
            "(",
            ".",
            ".*",
            "->",
            "->*",
            "++",
            "--",
            "&",
            "*",
            "+",
            "-",
            "~",
            "!",
            "/",
            "%",
            ">>",
            "<<",
            "<",
            ">",
            "<=",
            ">=",
            "==",
            "!=",
            "^",
            "|",
            "&&",
            "||",
            "?",
            ":",
            "::",
            "...",
            "=",
            "*=",
            "/=",
            "%=",
            "+=",
            "-=",
            ">>=",
            "<<=",
            "&=",
            "^=",
            "|=",
            ",",
            "$empty",
            "asm",
            "auto",
            "bool",
            "break",
            "case",
            "catch",
            "char",
            "class",
            "const",
            "const_cast",
            "continue",
            "default",
            "delete",
            "do",
            "double",
            "dynamic_cast",
            "else",
            "enum",
            "explicit",
            "export",
            "extern",
            "false",
            "float",
            "for",
            "friend",
            "goto",
            "if",
            "inline",
            "int",
            "long",
            "mutable",
            "namespace",
            "new",
            "operator",
            "private",
            "protected",
            "public",
            "register",
            "reinterpret_cast",
            "return",
            "short",
            "signed",
            "sizeof",
            "static",
            "static_cast",
            "struct",
            "switch",
            "template",
            "this",
            "throw",
            "try",
            "true",
            "typedef",
            "typeid",
            "typename",
            "union",
            "unsigned",
            "using",
            "virtual",
            "void",
            "volatile",
            "wchar_t",
            "while",
            "integer",
            "floating",
            "charconst",
            "stringlit",
            "identifier",
            "Completion",
            "EndOfCompletion",
            "Invalid",
            "RightBracket",
            "RightParen",
            "RightBrace",
            "SemiColon",
            "LeftBrace",
            "ERROR_TOKEN",
            "EOF_TOKEN",
            "expression_parser_start",
            "]",
            ")",
            "}",
            ";",
            "{",
            "identifier_token",
            "expression",
            "id_expression",
            "qualified_or_unqualified_name",
            "unqualified_id_name",
            "identifier_name",
            "template_id_name",
            "nested_name_specifier",
            "class_or_namespace_name",
            "nested_name_specifier_with_tem" +
            "plate",
            "class_or_namespace_name_with_t" +
            "emplate",
            "class_name",
            "postfix_expression",
            "simple_type_specifier",
            "pseudo_destructor_name",
            "type_id",
            "type_name",
            "destructor_type_name",
            "unary_expression",
            "cast_expression",
            "new_type_id",
            "expression_list",
            "type_specifier_seq",
            "new_declarator",
            "new_pointer_operators",
            "ptr_operator",
            "new_array_expressions",
            "constant_expression",
            "pm_expression",
            "multiplicative_expression",
            "additive_expression",
            "shift_expression",
            "relational_expression",
            "equality_expression",
            "and_expression",
            "exclusive_or_expression",
            "inclusive_or_expression",
            "logical_and_expression",
            "logical_or_expression",
            "assignment_expression",
            "relational_expression_inTempla" +
            "te",
            "equality_expression_inTemplate",
            "and_expression_inTemplate",
            "exclusive_or_expression_inTemp" +
            "late",
            "inclusive_or_expression_inTemp" +
            "late",
            "logical_and_expression_inTempl" +
            "ate",
            "logical_or_expression_inTempla" +
            "te",
            "assignment_expression_inTempla" +
            "te",
            "expression_list_actual",
            "statement",
            "compound_statement",
            "statement_seq",
            "condition",
            "declarator",
            "for_init_statement",
            "function_definition",
            "declaration",
            "declaration_seq",
            "declaration_specifiers",
            "simple_declaration_specifiers",
            "class_declaration_specifiers",
            "elaborated_declaration_specifi" +
            "ers",
            "enum_declaration_specifiers",
            "type_name_declaration_specifie" +
            "rs",
            "no_type_declaration_specifier",
            "cv_qualifier",
            "no_type_declaration_specifiers",
            "class_specifier",
            "elaborated_type_specifier",
            "enum_specifier",
            "type_name_specifier",
            "class_keyword",
            "enumerator_list",
            "enumerator_definition",
            "namespace_name",
            "init_declarator_list",
            "init_declarator_complete",
            "complete_declarator",
            "initializer",
            "direct_declarator",
            "ptr_operator_seq",
            "function_declarator",
            "basic_direct_declarator",
            "array_direct_declarator",
            "array_modifier",
            "abstract_declarator",
            "direct_abstract_declarator",
            "basic_direct_abstract_declarat" +
            "or",
            "array_direct_abstract_declarat" +
            "or",
            "parameter_declaration_list",
            "parameter_declaration",
            "parameter_init_declarator",
            "parameter_initializer",
            "function_body",
            "handler_seq",
            "initializer_clause",
            "initializer_seq",
            "class_head",
            "access_specifier_keyword",
            "member_declaration",
            "member_declarator_list",
            "member_declaration_list",
            "member_declarator_complete",
            "constant_initializer",
            "bit_field_declarator",
            "base_specifier_list",
            "base_specifier",
            "conversion_function_id",
            "conversion_type_id",
            "conversion_declarator",
            "mem_initializer_list",
            "mem_initializer",
            "mem_initializer_name",
            "operator_id_name",
            "overloadable_operator",
            "template_parameter_list",
            "template_parameter",
            "template_argument_list",
            "template_argument",
            "type_name_specifier_inTemplate",
            "type_name_declaration_specifie" +
            "rs_inTemplate",
            "type_specifier_seq_inTemplate",
            "handler",
            "exception_declaration",
            "type_id_list"
        };
    };
    public final static String name[] = Name.name;
    public final String name(int index) { return name[index]; }

    public final static int
           ERROR_SYMBOL      = 62,
           SCOPE_UBOUND      = 121,
           SCOPE_SIZE        = 122,
           MAX_NAME_LENGTH   = 43;

    public final int getErrorSymbol() { return ERROR_SYMBOL; }
    public final int getScopeUbound() { return SCOPE_UBOUND; }
    public final int getScopeSize() { return SCOPE_SIZE; }
    public final int getMaxNameLength() { return MAX_NAME_LENGTH; }

    public final static int
           NUM_STATES        = 604,
           NT_OFFSET         = 122,
           LA_STATE_OFFSET   = 7461,
           MAX_LA            = 2147483647,
           NUM_RULES         = 599,
           NUM_NONTERMINALS  = 225,
           NUM_SYMBOLS       = 347,
           SEGMENT_SIZE      = 8192,
           START_STATE       = 3365,
           IDENTIFIER_SYMBOL = 0,
           EOFT_SYMBOL       = 120,
           EOLT_SYMBOL       = 120,
           ACCEPT_ACTION     = 6422,
           ERROR_ACTION      = 6862;

    public final static boolean BACKTRACK = true;

    public final int getNumStates() { return NUM_STATES; }
    public final int getNtOffset() { return NT_OFFSET; }
    public final int getLaStateOffset() { return LA_STATE_OFFSET; }
    public final int getMaxLa() { return MAX_LA; }
    public final int getNumRules() { return NUM_RULES; }
    public final int getNumNonterminals() { return NUM_NONTERMINALS; }
    public final int getNumSymbols() { return NUM_SYMBOLS; }
    public final int getSegmentSize() { return SEGMENT_SIZE; }
    public final int getStartState() { return START_STATE; }
    public final int getStartSymbol() { return lhs[0]; }
    public final int getIdentifierSymbol() { return IDENTIFIER_SYMBOL; }
    public final int getEoftSymbol() { return EOFT_SYMBOL; }
    public final int getEoltSymbol() { return EOLT_SYMBOL; }
    public final int getAcceptAction() { return ACCEPT_ACTION; }
    public final int getErrorAction() { return ERROR_ACTION; }
    public final boolean isValidForParser() { return isValidForParser; }
    public final boolean getBacktrack() { return BACKTRACK; }

    public final int originalState(int state) {
        return -baseCheck[state];
    }
    public final int asi(int state) {
        return asb[originalState(state)];
    }
    public final int nasi(int state) {
        return nasb[originalState(state)];
    }
    public final int inSymbol(int state) {
        return inSymb[originalState(state)];
    }

    public final int ntAction(int state, int sym) {
        return baseAction[state + sym];
    }

    public final int tAction(int state, int sym) {
        int i = baseAction[state],
            k = i + sym;
        return termAction[termCheck[k] == sym ? k : i];
    }
    public final int lookAhead(int la_state, int sym) {
        int k = la_state + sym;
        return termAction[termCheck[k] == sym ? k : la_state];
    }
}
